#include using namespace std; template class Pair { public: Pair(const T1& a, const T2& b) : a_(a), b_(b) {} T1 first() const { return a_; } T2 second() const { return b_; } private: T1 a_; T2 b_; }; template ostream& operator<<(ostream& out, const Pair& p){ out << p.first() << "," << p.second() ; return out; } int main() { Pair coppiaDiInt(8,13); Pair coppiaMista(2, 3213.32); Pair > coppiaAperta(4, coppiaMista); cout << "Coppia di Int " << coppiaDiInt << endl; cout << "Coppia Mista " << coppiaMista << endl; cout << "Coppia Aperta " << coppiaAperta << endl; return 0; }