mpl::vectorからfusion::vectorへの変換

BoostML - Fusion container from MPL typelist?


boost::fusion::result_of::as_vectorを使います。

#include <boost/static_assert.hpp>
#include <boost/type_traits.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/adapted/mpl.hpp>

using namespace boost;

int main()
{
    typedef mpl::vector<int, char, double>            mlist;
    typedef fusion::vector<int, char, double>         flist;
    typedef fusion::result_of::as_vector<mlist>::type result;

    BOOST_STATIC_ASSERT((is_same<result, flist>::value));
}

たまにメタメタしないとすぐ鈍っちゃいますね。