【发布时间】:2010-09-11 20:30:21
【问题描述】:
静态元编程(又名“模板元编程”)是一种很棒的 C++ 技术,它允许在编译时执行程序。当我读到这个典型的元编程示例时,我的脑海中突然闪过一个灯泡:
#include <iostream>
using namespace std;
template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };
template<>
struct factorial< 0 > { enum { ret = 1 }; };
int main() {
cout << "7! = " << factorial< 7 >::ret << endl; // 5040
return 0;
}
如果想了解更多关于 C++ 静态元编程的知识,最好的资源是什么(书籍、网站、在线课件等等)?
【问题讨论】:
-
灯泡“关闭”或“打开”?
-
关闭。绝对关闭。
标签: c++ templates metaprogramming