C++的模版
模板(template)确实有两种主要形式:
- 函数模板(function template):编写泛型函数。
- 类模板(class template):编写泛型类。
它们的本质是 “与类型无关”的代码生成机制,编译器在编译期根据具体类型,生成对应的函数或类。
但 C++ 模板还有一个强大而“非主流”的用途:模板元编程(Template Metaprogramming, TMP)、
什么是模板元编程(TMP)?
模板元编程 是一种在 编译期 完成计算、逻辑判断、类型推导、结构生成等任务的编程范式。它利用模板的递归、特化、SFINAE 等机制,在代码编译时“执行逻辑”。
特点:
- 没有运行时开销(所有逻辑在编译期完成)。
- 通常用于:类型计算、编译期常量生成、状态机结构描述、策略选择等。
- 代码看起来像“写元程序生成程序”。
浙公网安备 33010602011771号