//Purpose: // Test what happens when tuple with duplicate tags(i.e. placeholders) // is created. // #include #include namespace mpl = boost::mpl; using namespace boost::type_erasure; template < unsigned IdThis > struct v { v() { std::cout<<"v<"<()\n"; } v( v const&) { std::cout<<"v<"<( v<"< const&)\n"; } template < unsigned IdOther > v( vconst&) { std::cout<<"v<"<( v<"< const&)\n"; } }; int main() { typedef mpl::vector < copy_constructible<_a> , copy_constructible<_b> > requirements; tuple t ( (v<1>()) , (v<2>()) , (v<3>()) ); std::cout<<"&t="<<(void*)&t<<"\n"; return 0; }