Changeset 703:32f280a5ed7d in lemon-0.x for src/work/deba/extended_pair.h
- Timestamp:
- 07/15/04 14:15:58 (20 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@954
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/deba/extended_pair.h
r702 r703 1 // -*- c++ -*- 1 2 #ifndef EXTENDED_PAIR_H 2 3 #define EXTENDED_PAIR_H … … 7 8 typedef T2 second_type; 8 9 10 extended_pair() : first(), second() {} 11 9 12 extended_pair(A1 f, A2 s) : first(f), second(s) {} 13 14 template <class Pair> 15 extended_pair(const Pair& pair) : first(pair.first), second(pair.second) {} 10 16 11 17 T1 first; … … 13 19 }; 14 20 21 template <typename T1, typename T2, 22 typename LA1, typename LA2, typename RA1, typename RA2> 23 bool operator==(const extended_pair<T1, LA1, T2, LA2>& left, 24 const extended_pair<T1, RA1, T2, RA2>& right) { 25 return left.first == right.first && left.second == right.second; 26 } 27 28 template <typename T1, typename T2, 29 typename LA1, typename LA2, typename RA1, typename RA2> 30 bool operator!=(const extended_pair<T1, LA1, T2, LA2>& left, 31 const extended_pair<T1, RA1, T2, RA2>& right) { 32 return !(left == right); 33 } 34 35 template <typename T1, typename T2, 36 typename LA1, typename LA2, typename RA1, typename RA2> 37 bool operator<(const extended_pair<T1, LA1, T2, LA2>& left, 38 const extended_pair<T1, RA1, T2, RA2>& right) { 39 if (left.first == right.first) return left.second == right.second; 40 return left.first < right.first; 41 } 42 43 template <typename T1, typename T2, 44 typename LA1, typename LA2, typename RA1, typename RA2> 45 bool operator>(const extended_pair<T1, LA1, T2, LA2>& left, 46 const extended_pair<T1, RA1, T2, RA2>& right) { 47 return right < left; 48 } 49 50 template <typename T1, typename T2, 51 typename LA1, typename LA2, typename RA1, typename RA2> 52 bool operator<=(const extended_pair<T1, LA1, T2, LA2>& left, 53 const extended_pair<T1, RA1, T2, RA2>& right) { 54 return !(right > left); 55 } 56 57 template <typename T1, typename T2, 58 typename LA1, typename LA2, typename RA1, typename RA2> 59 bool operator>=(const extended_pair<T1, LA1, T2, LA2>& left, 60 const extended_pair<T1, RA1, T2, RA2>& right) { 61 return !(right < left); 62 } 63 64 15 65 #endif
Note: See TracChangeset
for help on using the changeset viewer.