第四章–C++模板元编程介绍

Aki 发布于 2022-12-01 221 次阅读


元编程技术是由编译器在编译时解析执行代码,并生成最终代码,数据的技术。相对于其他技术而言,它以最少的代价实现更多的功能,满足强大的灵活性同时最大化复用代码。

C++模板元编程(C++ Template Metaprogramming, TMP)能力是民间偶然间发现的,并且已经被证实了C++模板元编程的图灵完备能力,这意味着可由计算机程序表达的任何计算都可以通过 TPM 来完成。

与 C++ 的很多技术一样,TMP 的发展是由社区推动的。自 Erwin Unruh 之后,许多人都开始研究 TMP,并在他们的项目中使用 TMP 相关的技术。其中最典型是一系列 Metaprogramming Library 的出现,这些 Library 提供编译期的容器和算法,就像是 STL 一样。不同的是这些容器存储的是常量和类型,这些算法都是运行在编译期间。

元编程能力与应用、

  • 1)零成本抽象
  • 2)编译期进行运算
  • 3)类型计算
  • 4)编译时多态
  • 5)类型安全
  • 6)泛型编程
  • 7)静态反射
  • 8)内部领域特定语言EDSL