#include "BoostWorkaround/boost/tuple/tuple.hpp" struct another {int dummy;}; boost::tuple first; boost::tuple second; boost::tuple<> third; boost::tuple last; void test () { // Implicit conversion first = boost::make_tuple(4,4,4); // FIXME: Explicit conversion not really required yet last = (boost::tuple)boost::make_tuple(4.,4.,4.); // Non-const access first.get<0>() = 1; first.get<1>() = 2; first.get<2>() = 3; float f = last.get<2>(); bool b = second.get<3>(); // Const cases const boost::tuple constant = boost::make_tuple(4,4,4); first.get<0>() = constant.get<0>(); // Direct assignment w. explicit conversion last = first; }