The libaray native supported function boost::mpl::joint_view is probably a better choice. It is optimized and lazy-evaluated.
http://www.boost.org/doc/libs/1_55_0/libs/mpl/doc/refmanual/joint-view.html
Question
I have to different vectors
mpl::vector<Type1, Type2...>
mpl::vector<Type3, Type4...>
I'd like to "concatenate" them to form:
mpl::vector<Type1, Type2, Type3, Type4...>
This would allow me to prepare vector templates and reuse them afterwards. There are different solutions to my problem, but this approach seems most appropriate to me.
Thanks...
Solution
The libaray native supported function boost::mpl::joint_view is probably a better choice. It is optimized and lazy-evaluated.
http://www.boost.org/doc/libs/1_55_0/libs/mpl/doc/refmanual/joint-view.html
OTHER TIPS
Like this:
// include the appropriate headers
typedef mpl::vector<Type1, Type2> first_type;
typedef mpl::vector<Type3, Type4> second_type;
typedef mpl::copy<first_type::type, mpl::back_inserter<second_type> >::type concat_type;
You can use mpl::copy, which uses mpl::fold internally.
typedef mpl::vector<T0, T1> s0;
typedef mpl::vector<T2, T3> s1;
typedef mpl::copy<
s1,
mpl::back_inserter<s0>
>::type concatenated;
BOOST_MPL_ASSERT((
mpl::equal<
concatenated,
mpl::vector<T0, T1, T2, T3>
>
));