
Hi, I would need this: // a) typedef fusion::vector<...> input0_type; typedef mpl::transform( input0_type, F0 )::type result0_type; //b) typedef fusion::vector<...> resul1_type; result1_type result1 = fusion::transform( result0_type(), f1 ); Of course a) is not allowed, but I guess I can do: // a) typedef mpl::vector<...> mpl_input0_type; //same elements as input0_type typedef mpl::transform( mpl_input0_type, F0 )::type mpl_result0_type; //b) #include <boost/fusion/adapted/mpl.hpp> #include <boost/fusion/include/mpl.hpp> typedef fusion::vector<...> resul1_type; result1_type result1 = fusion::transform( mpl_result0_type(),//? f1 ); in my case, result1_type = input0_type. So I have to define input0_type and mpl_input0_type separately although they convey the same information. i'd like to get rid of this redundancy. I wished there existed a metafun fusion_to_mpl such that MPL_ASSERT((is_same<fusion_to_mpl<input0_type>::type,mpl_input0_type>)) so that the 1st version of a) could be replaced by typedef mpl::transform( fusion_to_mpl<input0_type>::type, F0 )::type mpl_result0_type; and keep the second version of b) any help appreciated. thanks!