BALL 1.5.0
Loading...
Searching...
No Matches
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
12namespace BALL
13{
14
20 template <typename T>
22 {
23 public:
24
28
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
bool isGreater(const T &a, const T &b) const
Definition comparator.h:133
bool isNotEqual(const T &a, const T &b) const
Definition comparator.h:105
bool isLessOrEqual(const T &a, const T &b) const
Definition comparator.h:119
int operator()(const T &a, const T &b) const
Definition comparator.h:140
bool isGreaterOrEqual(const T &a, const T &b) const
Definition comparator.h:126
virtual bool isEqual(const T &a, const T &b) const
Definition comparator.h:98
virtual bool isLess(const T &a, const T &b) const
Definition comparator.h:112
virtual ~Comparator()
Definition comparator.h:92