#include <boost/preprocessor/iteration/local.hpp> template<int> struct sample; #define BOOST_PP_LOCAL_MACRO(n) /* ... */ \ template<> struct sample<n> { \ enum { value = n }; \ }; \ /**/ #define BOOST_PP_LOCAL_LIMITS (1, 5) #include BOOST_PP_LOCAL_ITERATE() /* expands to... template<> struct sample<1> { enum { value = 1 }; }; template<> struct sample<2> { enum { value = 2 }; }; template<> struct sample<3> { enum { value = 3 }; }; template<> struct sample<4> { enum { value = 4 }; }; template<> struct sample<5> { enum { value = 5 }; }; */