63 template <
class _T1,
class _T2>
69 typedef _T1 first_type;
70 typedef _T2 second_type;
75 K2Pair(
const _T1& __a,
const _T2& __b) : first(__a), second(__b) {}
77 template <
class _U1,
class _U2>
88 swap(a.first, b.first);
89 swap(a.second, b.second);
94 template <
class _T1,
class _T2>
97 return __x.first == __y.first && __x.second == __y.second;
100 template <
class _T1,
class _T2>
101 inline bool16 operator<(const K2Pair<_T1, _T2>& __x,
const K2Pair<_T1, _T2>& __y)
103 return __x.first < __y.first ||
104 (!(__y.first < __x.first) && __x.second < __y.second);
108 template <
class _T1,
class _T2>
110 return !(__x == __y);
113 template <
class _T1,
class _T2>
118 template <
class _T1,
class _T2>
119 inline bool16 operator<=(const K2Pair<_T1, _T2>& __x,
const K2Pair<_T1, _T2>& __y) {
123 template <
class _T1,
class _T2>
129 template <
class _T1,
class _T2>
135 template <
class First,
class Second>
142 template <
class First,
class Second>