#include #include #include #include namespace fusion = boost::fusion; struct Object1{}; int main() { typedef fusion::vector > seq_type; seq_type seq; boost::shared_ptr value(new Object1()); fusion::at_c<0>(seq) = value; std::cout << &*fusion::at_c<0>(seq) << std::endl; BOOST_MPL_ASSERT((boost::is_reference::type>)); }