emp-toolkit
comparable.h
Go to the documentation of this file.
1 #ifndef COMPARABLE_H__
2 #define COMPARABLE_H__
3 
4 template<typename T>
5 class Comparable { public:
6  Bit operator>=(const T&rhs) const {
7  return static_cast<const T*>(this)->geq(rhs);
8  }
9  Bit operator<(const T& rhs) const {
10  return !( (*static_cast<const T*>(this))>= rhs );
11  }
12 
13  Bit operator<=(const T& rhs) const {
14  return rhs >= *static_cast<const T*>(this);
15  }
16 
17  Bit operator>(const T& rhs) const {
18  return !(rhs >= *static_cast<const T*>(this));
19  }
20 
21  Bit operator==(const T& rhs) const {
22  return static_cast<const T*>(this)->equal(rhs);
23  }
24  Bit operator!=(const T& rhs) const {
25  return !(*static_cast<const T*>(this) == rhs);
26  }
27 };
28 #endif
Bit operator>(const T &rhs) const
Definition: comparable.h:17
Definition: comparable.h:5
Bit operator!=(const T &rhs) const
Definition: comparable.h:24
Bit operator==(const T &rhs) const
Definition: comparable.h:21
Definition: bit.h:8
Bit operator<=(const T &rhs) const
Definition: comparable.h:13
Bit operator<(const T &rhs) const
Definition: comparable.h:9
Bit operator>=(const T &rhs) const
Definition: comparable.h:6