BALL  1.5.0
comparator.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_CONCEPT_COMPARATOR_H
6 #define BALL_CONCEPT_COMPARATOR_H
7 
8 #ifndef BALL_COMMON_H
9 # include <BALL/common.h>
10 #endif
11 
12 namespace BALL
13 {
14 
20  template <typename T>
21  class Comparator
22  {
23  public:
24 
28 
31  Comparator()
32  ;
33 
36  virtual ~Comparator()
37  ;
38 
40 
43 
46  virtual bool isEqual(const T& a, const T& b) const
47  ;
48 
51  bool isNotEqual(const T& a, const T& b) const
52  ;
53 
56  virtual bool isLess(const T& a, const T& b) const
57  ;
58 
61  bool isLessOrEqual(const T& a, const T& b) const
62  ;
63 
66  bool isGreaterOrEqual(const T& a, const T& b) const
67  ;
68 
71  bool isGreater(const T& a, const T& b) const
72  ;
73 
79  int operator () (const T& a, const T& b) const
80  ;
81 
83  };
84 
85  template <typename T>
87 
88  {
89  }
90 
91  template <typename T>
93 
94  {
95  }
96 
97  template <class T>
98  inline bool Comparator<T>::isEqual(const T& a, const T& b) const
99 
100  {
101  return (a == b);
102  }
103 
104  template <class T>
105  inline bool Comparator<T>::isNotEqual(const T& a, const T& b) const
106 
107  {
108  return !isEqual(a, b);
109  }
110 
111  template <class T>
112  inline bool Comparator<T>::isLess(const T& a, const T& b) const
113 
114  {
115  return (a < b);
116  }
117 
118  template <class T>
119  inline bool Comparator<T>::isLessOrEqual(const T& a, const T& b) const
120 
121  {
122  return !isLess(b, a);
123  }
124 
125  template <class T>
126  inline bool Comparator<T>::isGreaterOrEqual(const T& a, const T& b) const
127 
128  {
129  return !isLess(a, b);
130  }
131 
132  template <class T>
133  inline bool Comparator<T>::isGreater(const T& a, const T& b) const
134 
135  {
136  return isLess(b, a);
137  }
138 
139  template <class T>
140  inline int Comparator<T>::operator () (const T& a,const T& b) const
141 
142  {
143  if (isEqual(a, b) == true)
144  {
145  return 0;
146  }
147 
148  if (isLess(a, b) == true)
149  {
150  return -1;
151  }
152  else
153  {
154  return 1;
155  }
156  }
157 
158 } // namespace BALL
159 
160 #endif // BALL_CONCEPT_COMPARATOR_H
BALL::Comparator::isGreater
bool isGreater(const T &a, const T &b) const
Definition: comparator.h:133
BALL::Comparator
Definition: comparator.h:22
BALL::Comparator::isNotEqual
bool isNotEqual(const T &a, const T &b) const
Definition: comparator.h:105
BALL::Comparator::operator()
int operator()(const T &a, const T &b) const
Definition: comparator.h:140
BALL::Comparator::isEqual
virtual bool isEqual(const T &a, const T &b) const
Definition: comparator.h:98
BALL::Maths::isEqual
bool isEqual(const T1 &a, const T2 &b)
Definition: MATHS/common.h:212
BALL::Comparator::~Comparator
virtual ~Comparator()
Definition: comparator.h:92
BALL
Definition: constants.h:13
BALL::Comparator::isLess
virtual bool isLess(const T &a, const T &b) const
Definition: comparator.h:112
BALL::Comparator::isGreaterOrEqual
bool isGreaterOrEqual(const T &a, const T &b) const
Definition: comparator.h:126
BALL::Comparator::isLessOrEqual
bool isLessOrEqual(const T &a, const T &b) const
Definition: comparator.h:119
BALL::Maths::isLess
bool isLess(const T1 &a, const T2 &b)
Definition: MATHS/common.h:236
common.h
BALL::Comparator::Comparator
Comparator()
Definition: comparator.h:86