文档目录
高级模板技巧——CRTP、Variadic Templates 与 Fold Expressions
前四阶段讲的是"语法层面的模板"。这一阶段讲的是"实战中的模板设计模式"——不是让你背语法,而是让你知道什么时候用什么技巧,解决什么问题。
本节目录
- CRTP(奇异递归模板模式) 一、解决什么问题? 问题:你有一个通用的算法骨架(比如"遍历 + 处理 + 汇总"),但其中的"处理"步骤在不同类型中不同。有两种选择: 虚函数:方便,但每 …
- 可变参数模板(Variadic Templates) 一、解决什么问题? 问题:在 C++03 中,你想写一个"接收任意数量参数的函数",只能靠: 函数重载(写 N 个版本,累死)。 C 风格的 …
- 折叠表达式(Fold Expressions) 一、解决什么问题? 问题:在 C++17 之前,你想对可变参数包做一个"累加"操作,必须写递归模板: // C++11 风格的求和(痛苦) auto …
- `std 一、解决什么问题? 你有一个 tuple,想调用一个函数,参数就是这个 tuple 里的元素: auto t = std::make_tuple(1, …
- `std 一、解决什么问题? std::tuple 的元素类型不同,不能用普通 for 循环遍历。 需求:我想对 tuple 的每个元素调用同一函数。 …