用途:面向 C++ 模板编程与元编程的生产级开发技能,帮助开发者从模板基础逐步掌握高级元编程技术,并用于编写泛型库代码、改善模板错误信息。
主要能力:
- 模板基础:函数模板、多模板参数、C++20 简写函数模板、非类型模板参数、模板实参推导;类模板、默认模板参数、C++17 类模板实参推导(CTAD)与推导指引。
- 模板特化:全特化与偏特化,如对 vector、指针等的偏特化。
- 可变参数模板:参数包、sizeof...、C++17 折叠表达式(一元左/右折叠、带初值的二元折叠、逻辑折叠、逗号折叠)、C++17 前的递归展开。
- SFINAE 与 enable_if:按类型约束重载、void_t 检测惯用法、is_detected 实现与检测表达式。
- Concepts(C++20):标准概念(integral、floating_point、copyable、invocable、ranges::range 等)、自定义概念与 requires 表达式、requires 子句、概念包含与重载消解。
- 类型萃取:标准萃取(类型分类、属性、变换如 remove_const_t、add_pointer_t、decay_t、common_type_t、conditional_t)、自定义萃取与类型变换(如递归移除多层指针)。
- 编译期计算:constexpr 函数与 constexpr 类、C++20 consteval、编译期字符串哈希。
- 模板错误信息:用概念提供清晰报错、static_assert 自定义消息;附模板错误排查决策树,覆盖“no matching function”“ambiguous call”“incomplete type”“exceeds maximum depth”“constraint not satisfied”等情况。
- 单元测试模板:基于 gtest 测试类型萃取、概念、可变参数模板、constexpr 与特化。
使用方式:作为技能/插件在开发流程中调用,编写或审查 C++ 模板代码;文档中的示例命令与代码保持原样,不在此重复。
集成点:stl-master(泛型容器)、modern-cpp-expert(概念、constexpr)、performance-optimizer(编译期优化)、cpp-algorithms-agent(泛型算法)。
限制:资料未提供安装命令、价格、收费模式与平台支持信息;具体编译器版本要求除文中标注的 C++ 标准(C++17/C++20)外暂未提供。