BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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