
AMDG Olivier Tournaire wrote:
I have a class templated on 2 arguments, e.g. :
template <typename PixelType , typename NbChannels> class myClass { // ... };
This class is in a lib, and I would like to instantiate it for all base type (signed char, unsigned char, int, unsigned int ...), and for a given number of channels. For example :
<snip>
And so on. Is there a way to do this without writing all possiblities. Maybe with the MPL ?
Use the preprocessor. #include <boost/preprocessor/seq/for_each.hpp> #include <boost/preprocessor/repetition/repeat_from_to.hpp> #define MY_CLASS_INSTANTIATION(z, n, data) template class myClass<data, n>; #define MY_CLASS_INNER_LOOP(r, data, T) BOOST_PP_REPEAT_FROM_TO(1, 10, MY_CLASS_INSTANTIATION, T) #define TYPES (unsigned char)(signed char)(int)(unsigned int) BOOST_PP_SEQ_FOR_EACH(MY_CLASS_INNER_LOOP, ~, TYPES) In Christ, Steven Watanabe