https://en.wikipedia.org/wiki/Template_metaprogramming
没看懂。。。只知道了模板元编程的代码是在编译期运行的。。。
敲了2个例子:
1.
#include <iostream> using namespace std; template<int n> struct f { enum { value = f<n - 1>::value }; }; template<> struct f<1> { enum { value = 1 }; }; int main() { cout << f<101>::value << endl; return 0; }
2.这段代码与一个经典问题相关(不使用硬编码方式实现打印数字1~100,知乎上也有这个问题,这段代码就是从知乎敲过来的):
#include <iostream> using namespace std; template<int n> void print() { print<n - 1>(); cout << n << endl; } template<> void print<1>() { cout << 1 << endl; } int main() { print<100>(); return 0; }