C++的模版

模板(template)确实有两种主要形式: 

  • 函数模板(function template):编写泛型函数。
  • 类模板(class template):编写泛型类。
 

它们的本质是 “与类型无关”的代码生成机制,编译器在编译期根据具体类型,生成对应的函数或类。

但 C++ 模板还有一个强大而“非主流”的用途:模板元编程(Template Metaprogramming, TMP)、

什么是模板元编程(TMP)?

模板元编程 是一种在 编译期 完成计算、逻辑判断、类型推导、结构生成等任务的编程范式。它利用模板的递归、特化、SFINAE 等机制,在代码编译时“执行逻辑”。 

特点:

  • 没有运行时开销(所有逻辑在编译期完成)。
  • 通常用于:类型计算、编译期常量生成、状态机结构描述、策略选择等。
  • 代码看起来像“写元程序生成程序”。

 

posted on 2025-12-01 11:43  杰瑞鼠  阅读(4)  评论(0)    收藏  举报