fork download
  1. #include <iostream>
  2. template<unsigned int N>
  3. struct odd_only { enum { value = N * (N % 2) }; };
  4. template<unsigned int N>
  5. struct sum_odds { enum { value = odd_only<N>::value + sum_odds<N-1>::value }; };
  6. template<>
  7. struct sum_odds<0>{ enum { value = 0 };};
  8. int main( ) { std::cout << "sum of odds in 0..100 = " << sum_odds<100>::value << std::endl; for(;0;);}
  9.  
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
sum of odds in 0..100 = 2500