Jamba C++ API  4.1.0
Dereferenceable< T > Class Template Reference

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. More...

#include <Operators.h>

Friends

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)
 

Detailed Description

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 {...}
};
// for equality and relational operations between 2 S
constexpr bool operator==(const S &lhs, const S &rhs) {...};
constexpr bool operator<(const S &lhs, const S &rhs) {...};
// for equality and relational operations between S and V
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.

Friends And Related Function Documentation

◆ operator!= [1/3]

constexpr bool operator!= ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator!= [2/3]

constexpr bool operator!= ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator!= [3/3]

constexpr bool operator!= ( V const &  lhs,
T const &  rhs 
)
friend

◆ operator< [1/3]

constexpr bool operator< ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator< [2/3]

constexpr bool operator< ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator< [3/3]

constexpr bool operator< ( V const &  lhs,
T const &  rhs 
)
friend

◆ operator<= [1/3]

constexpr bool operator<= ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator<= [2/3]

constexpr bool operator<= ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator<= [3/3]

constexpr bool operator<= ( V const &  lhs,
T const &  rhs 
)
friend

◆ operator== [1/3]

constexpr bool operator== ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator== [2/3]

constexpr bool operator== ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator== [3/3]

constexpr bool operator== ( V const &  lhs,
T const &  rhs 
)
friend

◆ operator> [1/3]

constexpr bool operator> ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator> [2/3]

constexpr bool operator> ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator> [3/3]

constexpr bool operator> ( V const &  lhs,
T const &  rhs 
)
friend

◆ operator>= [1/3]

constexpr bool operator>= ( T const &  lhs,
T const &  rhs 
)
friend

◆ operator>= [2/3]

constexpr bool operator>= ( T const &  lhs,
V const &  rhs 
)
friend

◆ operator>= [3/3]

constexpr bool operator>= ( V const &  lhs,
T const &  rhs 
)
friend

The documentation for this class was generated from the following file: