#include template class Tuple { public: Tuple(const T& t, const U& u); T first; U second; }; template Tuple::Tuple(const T& t, const U& u) : first(t), second(u) { } int main(int argc, char* argv[]) { int x = 5; int y = 3; Tuple t(x, y); t.second = 10000; printf("Tuple: (%d, %d)\n", t.first, t.second); Tuple another(12, "twelve"); printf("another: (%d, %s)\n", another.first, another.second); Tuple a(12.0, "twelve"); Tuple > b(12, a); auto c = b; return(0); }