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分钟才搞明白。
Global site tag (gtag.js) - Google Analytics