天天看点

初识TMP

初始模板元编程,感觉真是太cool了,抄一段自《Effective C++》的代码:

#include <iostream>

template<unsigned n>
struct Factorial {
	enum{value = n * Factorial<n - 1>::value};
};

template<>
struct Factorial<0>
{
	enum {value = 1};
};


int main()
{
    std::cout << "Hello World!\n"; 
	std::cout << Factorial<5>::value << std::endl;
	std::cout << Factorial<10>::value << std::endl;
	std::cout << Factorial<12>::value;
}
           

小菜鸟一枚,欢迎指教。

继续阅读