boost::fusion::mapは、各要素に名前の付いたタプル(named tuple)として扱えます。
型に対して、対応する要素を割り当てます。
#include <boost/assert.hpp> #include <boost/fusion/include/map.hpp> #include <boost/fusion/include/at_key.hpp> namespace fusion = boost::fusion; struct x {}; struct y {}; struct z {}; typedef fusion::map< fusion::pair<x, int>, fusion::pair<y, int>, fusion::pair<z, int> > vec; int main() { const vec v = {3, 1, 4}; BOOST_ASSERT(fusion::at_key<x>(v) == 3); BOOST_ASSERT(fusion::at_key<y>(v) == 1); BOOST_ASSERT(fusion::at_key<z>(v) == 4); }