WoMax Documentation OMax Logo

stl_pair.h

Go to the documentation of this file.
00001 
00002 
00066 #ifndef _PAIR_H
00067 #define _PAIR_H 1
00068 
00069 namespace std
00070 {
00072   template<class _T1, class _T2>
00073     struct pair
00074     {
00075       typedef _T1 first_type;    
00076       typedef _T2 second_type;   
00077 
00078       _T1 first;                 
00079       _T2 second;                
00080 
00081       // _GLIBCXX_RESOLVE_LIB_DEFECTS
00082       // 265.  std::pair::pair() effects overly restrictive
00085       pair()
00086       : first(), second() { }
00087 
00089       pair(const _T1& __a, const _T2& __b)
00090       : first(__a), second(__b) { }
00091 
00093       template<class _U1, class _U2>
00094         pair(const pair<_U1, _U2>& __p)
00095         : first(__p.first), second(__p.second) { }
00096     };
00097 
00099   template<class _T1, class _T2>
00100     inline bool
00101     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00102     { return __x.first == __y.first && __x.second == __y.second; }
00103 
00105   template<class _T1, class _T2>
00106     inline bool
00107     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00108     { return __x.first < __y.first
00109              || (!(__y.first < __x.first) && __x.second < __y.second); }
00110 
00112   template<class _T1, class _T2>
00113     inline bool
00114     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00115     { return !(__x == __y); }
00116 
00118   template<class _T1, class _T2>
00119     inline bool
00120     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00121     { return __y < __x; }
00122 
00124   template<class _T1, class _T2>
00125     inline bool
00126     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00127     { return !(__y < __x); }
00128 
00130   template<class _T1, class _T2>
00131     inline bool
00132     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
00133     { return !(__x < __y); }
00134 
00145   // _GLIBCXX_RESOLVE_LIB_DEFECTS
00146   // 181.  make_pair() unintended behavior
00147   template<class _T1, class _T2>
00148     inline pair<_T1, _T2>
00149     make_pair(_T1 __x, _T2 __y)
00150     { return pair<_T1, _T2>(__x, __y); }
00151 } // namespace std
00152 
00154 
00155 #endif /* _PAIR_H */

Generated on 16 Mar 2010 for Benjamin Lévy by  doxygen 1.6.1