原理:模板元程序由编译器在编译期解释执行,利用模板特化机制实现编译期条件选择结构,利用递归模板实现编译期循环结构。模板元编程(metaprogramming)意思是,编程系统将会执行我们所写的代码,来生成新的代码,而这些新代码才真正实现了我们所期望的功能。元编程大的特点在于:某些用户自定义的计算可以在编译期进行,二者通常能够在性能和接口简单性方面带来好处。
1. 利用模板特化机制实现编译期条件选择结构
首先了解一下类模板的特化。类模板特化是指将模板参数指定为某一种类型,你必须在起始处声明一个template<>,接下来声明用来特化模板的类型。这个类型被用作模板实参,且必须在类名后面