factorial非模板实现:
int factorial(int n){
if(n == 0){
return 1;
}
else{
return n * factorial(n -1);
}
}
factorial模板实现:
template <unsigned n>
class tmp{
public:
enum {value = n * tmp<n-1>::value};
};
template<>
class tmp<1>
{
public:
enum {value = 1};
};
测试代码:
int main(){
std::cout << tmp<4>::value << std::endl;
std::cout << factorial(4) << std::endl;return 0;
}