【发布时间】:2008-11-07 16:22:57
【问题描述】:
有没有办法根据模板预先计算一组值?在下面的示例中,如果可能的话,我希望 'powers_of_2' 数组在编译时计算 256 个值,而无需键入所有值。
#include <iostream>
using namespace std;
template <int X, char Y>
struct power {
enum { value = X * power<X,Y-1>::value };
};
template <int X>
struct power<X,1> {
enum { value = X };
};
template <int X>
struct power<X,0> {
enum { value = 1 };
};
int _tmain(int argc, _TCHAR* argv[])
{
int powers_of_2[] = { power<2,0>::value, power<2,1>::value, ..., power<2,255>::value };
cout << powers_of_2[1] << endl;
return 0;
}
【问题讨论】:
-
实际上,现在我再次查看您的问题(除了溢出问题),您似乎已经有了答案。 ???