#include <iostream>
template<unsigned int N>
struct odd_only { enum { value = N * (N % 2) }; };
template<unsigned int N>
struct sum_odds { enum { value = odd_only<N>::value + sum_odds<N-1>::value }; };
template<>
struct sum_odds<0>{ enum { value = 0 };};
int main( ) { std::cout << "sum of odds in 0..100 = " << sum_odds<100>::value << std::endl; for(;0;);}
