I have a templated class
template<class U, class V, class W>
class S
{
//... implementations
};
and some stock type implementations for type U, V and W:
typedef boost::mpl::vector<U0, U1> u_types;
typedef boost::mpl::vector<V0, V1, V2, V3, V4>
u_types;
typedef boost::mpl::vector<W0, W1, W2, W3, W4>
w_types;
I want to test class S with all possible combinations of the
template arguments,
typedef boost::mpl::vector<
S<U0,V0,W0>,
S<U0,V0,W1>,
// ...
S<U1,V4,W4>,
> s_types;
like this:
boost::mpl::for_each<s_types>(test_func).
The only problem is there are 2*5*5 = 50 combinations
that I do not wish to type in one by one.
Is there a way to generate all the combinations with
boost::mpl or Boost.Preprocessor?
thanks.