#include <iostream>
template < int N>
struct fact {
enum { value = N * fact<N - 1>::value };
};
template <>
struct fact<1> {
enum { value = 1 };
};
int main()
{
std::cout << "5! = " << fact<5>::value << std::endl;
}
template < int N>
struct fact {
enum { value = N * fact<N - 1>::value };
};
template <>
struct fact<1> {
enum { value = 1 };
};
int main()
{
std::cout << "5! = " << fact<5>::value << std::endl;
}