|
Boost Users : |
Subject: [Boost-users] combining mpl sequences
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2010-09-05 06:10:17
Hi,
I have a templatized mpl-vector
template< class T > class containers :
public mpl::vector<
std::vector< T > ,
std::list< T > ,
std::deque< T >
> { };
and a mpl-vector holding some types:
typedef mpl::vector< float , double , long double >::type my_types;
Is there a simple way to build a mpl vector which contains the elements
of the first vector with template arguments of the second vector, hence
mpl:vector<
std::vector< float > ,
std::vector< double > ,
std::vector< long double > ,
std::list< float > ,
std::list< double > ,
std::list< long double > ,
std::deque< float > ,
std::deque< double > ,
std::deque< long double >
>
I can do this manually with mpl::insert_range
typedef mpl::insert_range<
mpl::vector0<> ,
mpl::end< mpl::vector0<> >::type ,
containers< mpl::at< my_types , mpl::int_<0> >::type >
>::type first;
typedef mpl::insert_range<
first ,
mpl::end< first >::type ,
containers< mpl::at< my_types , mpl::int_<1> >::type >
>::type second;
typedef mpl::insert_range<
second ,
mpl::end< second >::type ,
containers< mpl::at< my_types , mpl::int_<2> >::type >
>::type all_containers;
But this way is not very elegant. Does some has any hints how to do this
automatically?
Best regards,
Karsten
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net