Listing 2

//Printing numbers in a range with Loop<>

inline void print( int i)    {
   cout << i << " , " ;     // one iteration worth of work
}
Loop<1,20>::eval( print ); //  print numbers 1 to 20