C++ 模板元编程
当我们编写程序使用模板在编译时进行计算的时候,这就是模板元编程。
示例代码
#include <iostream>
using namespace std;
template<int n>struct power {
enum { value = 4*power<n-1>::value };
};
template<>struct power<0> {
enum { value = 1 };
};
int main() {
cout <<”power is:”<< power<7>::value << endl;
return 0;
}输出
power is:16384
在上面的示例中,当编译器看到 power<7>::value,它尝试创建一个 power 的实例,其中参数为 7,结果证明也必须创建 power<6>,因为枚举常量值必须在编译时求值。对于 power<6>,编译器需要 power<5>,依此类推。最后,编译器使用 funStruct<1>::value,编译时递归终止。这就是模板元编程。
广告
数据结构
网络
关系型数据库系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
JavaScript
PHP