使用模板、概念和编译时编程编写真正泛型的、可复用的、零开销的抽象。
学习如何编写适用于任何类型的函数。理解模板参数推导、非类型参数,以及为什么模板需要放在头文件中。
使用类模板构建泛型数据结构。理解成员定义、默认参数,以及 C++17 的 CTAD 如何让你省略模板参数。
掌握全特化和偏特化,了解何时应优先使用重载,并发现标签分发和 if constexpr 作为编译时分支的替代方案。
使用参数包处理任意数量的模板参数。掌握折叠表达式以优雅地、无需递归地处理包。
理解「替换失败不是错误」原则,使用类型萃取进行编译时自省,以及使用 enable_if 约束模板。
使用概念定义对模板参数的精确要求。使用 requires 子句、简写函数模板和标准库概念编写更简洁的泛型代码。
使用 constexpr、consteval 和 constinit 将计算从运行时移到编译时。构建查找表、验证配置,以及使用 constexpr 容器。
掌握高级模板模式:用于静态多态的 CRTP、用于灵活组合的策略式设计、用于运行时泛型的类型擦除,以及何时使用模板与虚分发的指导原则。