Back to Basics: Templates Part 20 码力 | 80 页 | 490.15 KB | 1 年前3
C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程11 std::cout << twice(2.718) << std::endl; 12 } ## 模板函数:特化的重载 - 有时候,一个统一的实现(比如 t*2)满足不了某些特殊情况。比如 std::string 就不能用乘法来重复,这时候我们需要用 t+t 来替代,怎么办呢? - 没关系,只需添加一个 twice(std::string) e663b1a918b94a0dc8c52ed2434c6082/p6_1.jpg) ## 模板函数:特化的重载(续) 但是这样也有一个问题,那就是如果我用 twice("hello") 这样去调用,他不会自动隐式转换到 std::string 并调用那个特化函数,而是会去调用模板函数 twice("hello"),从而出错。 • 可能的解决方案:SFINAE。 \%'); ## 模板参数:参数部分特化 1. func(T t) 完全让参数类型取决于调用者。 2. func(vector t) 这样则可以限定仅仅为 vector 类型的参数。 - 这里用了 const & 避免不必要的的拷贝。 - 不过,这种部分特化也不支持隐式转换。 #include #include 0 码力 | 82 页 | 12.15 MB | 2 年前3
PyConChina2022-深圳-大规模生产环境下的Faster CPython-王文洋Python function calls • PEP 659: Specializing Adaptive Interpreter 动态语言的虚拟机可以根据执行中出现过的类型和值对代码进行特化,以提高运行效率。这种特化通常与“JIT”编译器联系在一起。但即使没有编译成机器代码,这种优化也是有益的。 Execution Quicken Adaptive Instruction Specialization0 码力 | 31 页 | 2.47 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型89f35442491e3b52b86402e3652be/p74_1.jpg) ## std::vector:标准库帮你实现好了 - 其实标准库的 vector 是一个特化的版本,他会自动像刚刚说的把值看做 1bit,然后八个合并成一个 int8_t。 - 不过效率比我们手写的低很多..... int main() { bate::timing("main"); 的话,他们不会正确推导出 bool,影响我们正常使用模板元编程。 • 一般认为 vector 是 C++ 标准库设计上的一个败笔,是为了向前兼容才保持这样不变的。 - 他们就不应该直接特化 vector<b std::vector<bool> arr(N); • 包括他的 data() 也是不对的。 static_assert(std::is_same_v 0 码力 | 102 页 | 9.50 MB | 2 年前3
云原生虚拟数仓 PieCloudDB ETL 方案设计与实现最好的 ETL 就是不需要 ETL,各系统共享同一份底层数据 • PieCloudDB 支持直接读取对象存储上的 parquet 等格式的文件 ## 云原生环境下的 ETL • 为不同类型的查询特化的系统会有不同的存储方式 • 同一份底层原始数据使用不同系统查询会产生 ETL 需求 ## 云原生环境下的 ETL • 多种数据源 • 多种数据格式 • 通用的数据处理/转换 • 唯一性与事务性保证0 码力 | 29 页 | 5.24 MB | 1 年前3
2.2.6 字节跳动在 Go 网络库上的实践01 性能亮点 02 高级特性 03 展望未来 04 新思路:unsafe,mcache(no gc),... 新技术(火山引擎): share memory IPC, ... 场景特化(火山引擎):同机部署,纯计算 /cache ... ## Thanks contact us  自定义 pure rust0 码力 | 22 页 | 1.18 MB | 2 年前3
统一建模语言 UML 参考手册 - 基本概念5-2. Use case relationships 包含和扩展关系以带关键字《include》和《extend》的虚线来绘制。包含关系指向被包含的用例;扩展关系指向被扩展的用例。 用例可以被特化成一个或多个子用例,即用例概括。任何子用例可以出现在父用例要求被使用的地方。 用例概括的绘制与其它任何概括相同,即用从子用例至父用例的带三角的线来表达。图5-1显示了目录出售中的用例关系。 Powered Deployment diagram 结点表示为具有名称、分类(可选)的风格化的方块(图 9-3)。结点之间的关联代表了通讯路径。关联可带有区分不同种类路径的版型。结点可以使用概括关系将结点的概括描述和更特化的变形联系在一起。 结点中的对象用结点符号中内嵌的对象符号来表达。如果不方便,对象符号可以包括标签 location,它的值为对象所驻留结点的名称(它的位置)。对象和构件实例在结点上的迁移也可以被表示。参见0 码力 | 123 页 | 2.61 MB | 2 年前3
05-MoonBit 编程语言(WASM 技术)服务端应用展望以及对Kubernetes生态的影响高级语言引擎 (运行时提供 GC、 Globals 等扩展功能) ## 云原生社区 | 云原生社区 MEETUP ## 关注点分离(2) 高级语言代码 高级语言标准库 标准化SI 标准化SI 特化SI WASI 0.1 WASI 0.2 二次开发 后端运行时 #### wasi v0.16.1 Author peter-jerry-ye License Apache-2.00 码力 | 30 页 | 3.41 MB | 1 年前3
共 39 条
- 1
- 2
- 3
- 4













