|
constexpr bool | operator!= (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator!= (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator!= (V const &lhs, T const &rhs) |
|
constexpr bool | operator< (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator< (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator< (V const &lhs, T const &rhs) |
|
constexpr bool | operator<= (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator<= (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator<= (V const &lhs, T const &rhs) |
|
constexpr bool | operator== (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator== (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator== (V const &lhs, T const &rhs) |
|
constexpr bool | operator> (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator> (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator> (V const &lhs, T const &rhs) |
|
constexpr bool | operator>= (T const &lhs, T const &rhs) |
|
template<typename V > |
constexpr bool | operator>= (T const &lhs, V const &rhs) |
|
template<typename V > |
constexpr bool | operator>= (V const &lhs, T const &rhs) |
|
template<typename T>
class pongasoft::Utils::Operators::Dereferenceable< T >
Implements all the various equality and relational operators for the type T
which is assumed to encapsulate some value that can be accessed by dereferencing T
or in other words T::operator*()
returns the underlying value.
If T::operator*()
returns a primitive, then it should just work and nothing else needs to be done.
If T::operator*()
returns another class or struct, then the following operators should be defined (you can define only some of them depending on your use):
struct S {...};
struct T {
constexpr S const & operator *() const {...}
};
constexpr
bool operator==(
const S &lhs,
const S &rhs) {...};
constexpr
bool operator<(
const S &lhs,
const S &rhs) {...};
template<typename V>
constexpr
bool operator==(
const S &lhs,
const V &rhs) {...};
template<typename V>
constexpr
bool operator<(
const S &lhs,
const V &rhs) {...};
- Note
- This code is primarily used by the various
XXParam
classes which encapsulates some type.