add: int d = 3; tuple<int&> ti(a); BOOST_TEST(&get<0>(ti) == &a); ti = tuple<int&>(d); BOOST_TEST(&get<0>(ti) == &a);
context: main(){    using namespace boost::fusion;    int a;    char b;    foo c(5);    tie(a, b, c) = make_tuple(2, 'a', foo(3));    BOOST_TEST(a == 2);    BOOST_TEST(b == 'a');    BOOST_TEST(c == foo(3));    tie(a, ignore, c) = make_tuple((short int)5, false, foo(5));    BOOST_TEST(a == 5);    BOOST_TEST(b == 'a');    BOOST_TEST(c == foo(5));    //  testing assignment from std::pair    int i, j;    tie (i, j) = std::make_pair(1, 2);    BOOST_TEST(i == 1 && j == 2);    tuple<int, int, float> ta;#ifdef E11    ta = std::make_pair(1, 2); // should fail, tuple is of length 3, not 2#endif    dummy(ta);    return boost::report_errors();}