Why type
is not same as expected
in the example below?
using origin = boost::fusion::map<
boost::fusion::pair<int, int>
>;
using expected = boost::fusion::map<
boost::fusion::pair<int, int>
,boost::fusion::pair<char, char>
>;
using type = boost::fusion::result_of::push_back<
origin
,boost::fusion::pair<char, char>
>::type;
static_assert(std::is_same<expected, type>::value, "error!");
The second question is, how can I get the same type as expected
when using result_of::push_back<>::type
?
You need to use
fusion::result_of::as_map
.