COIN-OR::LEMON - Graph Library

Changeset 703:32f280a5ed7d in lemon-0.x for src/work/deba/extended_pair.h


Ignore:
Timestamp:
07/15/04 14:15:58 (18 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@954
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/deba/extended_pair.h

    r702 r703  
     1// -*- c++ -*-
    12#ifndef EXTENDED_PAIR_H
    23#define EXTENDED_PAIR_H
     
    78  typedef T2 second_type;
    89
     10  extended_pair() : first(), second() {}
     11
    912  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) {}
    1016
    1117  T1 first;
     
    1319};
    1420
     21template <typename T1, typename T2,
     22          typename LA1, typename LA2, typename RA1, typename RA2>
     23bool 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
     28template <typename T1, typename T2,
     29          typename LA1, typename LA2, typename RA1, typename RA2>
     30bool operator!=(const extended_pair<T1, LA1, T2, LA2>& left,
     31                const extended_pair<T1, RA1, T2, RA2>& right) {
     32  return  !(left == right);
     33}
     34
     35template <typename T1, typename T2,
     36          typename LA1, typename LA2, typename RA1, typename RA2>
     37bool 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
     43template <typename T1, typename T2,
     44          typename LA1, typename LA2, typename RA1, typename RA2>
     45bool operator>(const extended_pair<T1, LA1, T2, LA2>& left,
     46                const extended_pair<T1, RA1, T2, RA2>& right) {
     47  return right < left;
     48}
     49
     50template <typename T1, typename T2,
     51          typename LA1, typename LA2, typename RA1, typename RA2>
     52bool operator<=(const extended_pair<T1, LA1, T2, LA2>& left,
     53                const extended_pair<T1, RA1, T2, RA2>& right) {
     54  return !(right > left);
     55}
     56
     57template <typename T1, typename T2,
     58          typename LA1, typename LA2, typename RA1, typename RA2>
     59bool 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
    1565#endif
Note: See TracChangeset for help on using the changeset viewer.