c++ meta programming
lin_llx
2008-06-19
#include <iostream>
template<long long n> struct Factorial { enum {value = n * Factorial<n - 1>::value }; }; template<> struct Factorial<0> { enum { value = 1 }; }; int main() { std::cout << Factorial<5>::value << std::endl; std::cout << Factorial<10>::value << std::endl; std::cout << Factorial<12>::value << std::endl; return 0; } 这个程序是编译时生成结果的。所以编译速度会异常的慢。但是运行时因为结果已经算出来了。所以运行速度会超级快。。。 |
|
crackcell
2008-06-19
Interesting~~~~~
This gives me some new ideas. |
|
crackcell
2008-06-20
比较好玩,呵呵。刚才输入法用不了。
|
|
lzy.je
2009-01-20
呵呵,编译期多态。
退化了,看了1分钟才搞明白。 |