47 template<
class Type1,
class Type2>
50 template<
class Type1,
class Type2>
51 inline bool operator==
53 const Tuple2<Type1, Type2>&,
54 const Tuple2<Type1, Type2>&
57 template<
class Type1,
class Type2>
58 inline bool operator!=
60 const Tuple2<Type1, Type2>&,
61 const Tuple2<Type1, Type2>&
64 template<
class Type1,
class Type2>
65 inline Istream&
operator>>(Istream&, Tuple2<Type1, Type2>&);
67 template<
class Type1,
class Type2>
68 inline Ostream& operator<<(Ostream&, const Tuple2<Type1, Type2>&);
75 template<
class Type1,
class Type2>
93 inline Tuple2(
const Type1&
f,
const Type2& s)
141 friend bool operator== <Type1, Type2>
147 friend bool operator!= <Type1, Type2>
157 friend Istream&
operator>> <Type1, Type2>
164 friend Ostream& operator<< <Type1, Type2>
172 template<
class Type1,
class Type2>
173 inline bool operator==
179 return (a.first() ==
b.first() && a.second() ==
b.second());
183 template<
class Type1,
class Type2>
184 inline bool operator!=
194 template<
class Type1,
class Type2>
198 is >> t2.f_ >> t2.s_;
202 is.
check(
"operator>>(Istream&, Tuple2<Type1, Type2>&)");
208 template<
class Type1,
class Type2>
209 inline Ostream& operator<<(Ostream& os, const Tuple2<Type1, Type2>& t2)