avarionist
Junior Poster in Training
70 posts since May 2010
Reputation Points: 11
Solved Threads: 3
#include <iostream>
using std::cout;
template<int val>
struct staticFactorial{
enum {result = val*staticFactorial<val-1>::result};
};
//template specilization
template<> struct staticFactorial<0>{
enum {result = 1};
};
int main(){
int A[] = { staticFactorial<0>::result,
staticFactorial<1>::result,
staticFactorial<2>::result,
staticFactorial<3>::result,
staticFactorial<4>::result,
staticFactorial<5>::result,
staticFactorial<6>::result,
staticFactorial<7>::result
};
for(int i = 0; i < sizeof(A)/sizeof(A[0]); ++i){
cout << A[i] << "\n";
}
}