>>756

template <int N>
struct Power {
enum { Value = Power<N - 1>::Value * N };
};

template <>
struct Power<1> {
enum { Value = 1 };
};

int main()
{
Power<10> p;

std::cout << p.Value << std::endl;
}