Jamba C++ API 7.5.0
Loading...
Searching...
No Matches
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>

Inherited by GUIOptionalParam< ParamValue >, GUIVstParam< bool >, and GUIVstParam< Percent >.

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) {...};
friend constexpr bool operator==(T const &lhs, T const &rhs)
Definition Operators.h:59
friend constexpr bool operator<(T const &lhs, T const &rhs)
Definition Operators.h:63
Note
This code is primarily used by the various XXParam classes which encapsulates some type.

◆ operator!= [1/3]

template<typename T>
bool operator!= ( T const & lhs,
T const & rhs )
friend

◆ operator!= [2/3]

template<typename T>
template<typename V>
bool operator!= ( T const & lhs,
V const & rhs )
friend

◆ operator!= [3/3]

template<typename T>
template<typename V>
bool operator!= ( V const & lhs,
T const & rhs )
friend

◆ operator< [1/3]

template<typename T>
bool operator< ( T const & lhs,
T const & rhs )
friend

◆ operator< [2/3]

template<typename T>
template<typename V>
bool operator< ( T const & lhs,
V const & rhs )
friend

◆ operator< [3/3]

template<typename T>
template<typename V>
bool operator< ( V const & lhs,
T const & rhs )
friend

◆ operator<= [1/3]

template<typename T>
bool operator<= ( T const & lhs,
T const & rhs )
friend

◆ operator<= [2/3]

template<typename T>
template<typename V>
bool operator<= ( T const & lhs,
V const & rhs )
friend

◆ operator<= [3/3]

template<typename T>
template<typename V>
bool operator<= ( V const & lhs,
T const & rhs )
friend

◆ operator== [1/3]

template<typename T>
bool operator== ( T const & lhs,
T const & rhs )
friend

◆ operator== [2/3]

template<typename T>
template<typename V>
bool operator== ( T const & lhs,
V const & rhs )
friend

◆ operator== [3/3]

template<typename T>
template<typename V>
bool operator== ( V const & lhs,
T const & rhs )
friend

◆ operator> [1/3]

template<typename T>
bool operator> ( T const & lhs,
T const & rhs )
friend

◆ operator> [2/3]

template<typename T>
template<typename V>
bool operator> ( T const & lhs,
V const & rhs )
friend

◆ operator> [3/3]

template<typename T>
template<typename V>
bool operator> ( V const & lhs,
T const & rhs )
friend

◆ operator>= [1/3]

template<typename T>
bool operator>= ( T const & lhs,
T const & rhs )
friend

◆ operator>= [2/3]

template<typename T>
template<typename V>
bool operator>= ( T const & lhs,
V const & rhs )
friend

◆ operator>= [3/3]

template<typename T>
template<typename V>
bool operator>= ( V const & lhs,
T const & rhs )
friend

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