#include #include #include #include #include #include namespace fusion = boost::fusion; struct make_ref { template struct result; template struct result : boost::add_reference {}; template typename boost::add_reference::type operator()(T& t) const { return t; } }; int main() { typedef fusion::vector vec; vec v(1,2); fusion::transform_view t(v, make_ref()); fusion::at_c<0>(t) = 3; fusion::at_c<1>(t) = 4; std::cout << t << std::endl; }