有沒有辦法根據模板預先計算一個值的數組?在下面的例子中,我想'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;
}
其實現在我再次看看你的問題(溢出問題除外),看起來你已經有了答案。 ??? – grieve 2008-11-07 16:43:04