
15 Mar
2007
15 Mar
'07
9:36 p.m.
Thanks Chris, good hints. Here is my solution: #include <vector> #include <boost/mpl/assert.hpp> #include <boost/mpl/equal.hpp> #include <boost/mpl/list.hpp> #include <boost/mpl/transform.hpp> #include <boost/type_traits/add_pointer.hpp> //using namespace boost::fusion; using namespace boost; using namespace boost::mpl; template <typename T> struct add_vector { typedef std::vector<T> type; }; struct A; struct B; struct C; int main() { typedef list< A, B, C > types; typedef list< std::vector<A>, std::vector<B>, std::vector<C> > vector_of_types; typedef transform1< types, add_vector<_1> >::type result; BOOST_MPL_ASSERT(( equal<vector_of_types,result> )); return 0; }