Listing 4

template <int N> struct exp10    
{ enum { value = 10 * exp10<N-1>::value }; };
template <>      struct exp10<0> 
{ enum { value = 1 }; };