PlayRho  1.1.0
An Interactive Real-Time-Oriented C++ Physics Engine & Library
playrho::CheckedValue< ValueType, CheckerType > Class Template Reference

Checked value. More...

#include <CheckedValue.hpp>

Inheritance diagram for playrho::CheckedValue< ValueType, CheckerType >:
[legend]
Collaboration diagram for playrho::CheckedValue< ValueType, CheckerType >:
[legend]

Public Types

using value_type = ValueType
 Value type.
 
using remove_pointer_type = typename std::remove_pointer< ValueType >::type
 Remove pointer type.
 
using checker_type = CheckerType
 Checker type.
 

Public Member Functions

template<bool B = HasNullaryFunctor<CheckerType,ValueType>::value, typename std::enable_if_t< B, int > = 0>
constexpr CheckedValue () noexcept(noexcept(CheckerType{}()))
 Default constructor available for checker types with acceptable nullary functors.
 
constexpr CheckedValue (value_type value) noexcept(noexcept(checker_type{}(value)))
 Initializing constructor. More...
 
constexpr value_type get () const noexcept
 Gets the underlying value.
 
constexpr operator value_type () const noexcept
 Gets the underlying value. More...
 
template<typename U = ValueType>
constexpr std::enable_if_t< std::is_pointer< U >::value, U > operator-> () const
 Member of pointer operator available for pointer ValueType.
 
template<typename U = ValueType>
constexpr std::enable_if_t< std::is_pointer< U >::value, remove_pointer_type > & operator* () const
 Indirection operator available for pointer ValueType.
 

Private Attributes

value_type m_value
 Underlying value.
 

Related Functions

(Note that these are not member functions.)

template<typename ValueType , typename CheckerType >
auto operator<< (::std::ostream &os, const CheckedValue< ValueType, CheckerType > &value) -> decltype(os<< ValueType(value))
 Constrained value stream output operator for value types which support it. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator== (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) noexcept(noexcept(std::declval< LhsValueType >()==std::declval< RhsValueType >())) -> decltype(LhsValueType(lhs)==RhsValueType(rhs))
 Constrained value equality operator for value types which support it. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator!= (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) noexcept(noexcept(std::declval< LhsValueType >() !=std::declval< RhsValueType >())) -> decltype(LhsValueType(lhs) !=RhsValueType(rhs))
 Constrained value inequality operator for value types which support it. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator<= (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs)<=RhsValueType(rhs))
 Constrained value less-than or equal-to operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator>= (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs) >=RhsValueType(rhs))
 Constrained value greater-than or equal-to operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator< (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs)< RhsValueType(rhs))
 Constrained value less-than operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator> (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs) > RhsValueType(rhs))
 Constrained value greater-than operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator* (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs) *RhsValueType(rhs))
 Constrained value multiplication operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator/ (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs)/RhsValueType(rhs))
 Constrained value division operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator+ (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs)+RhsValueType(rhs))
 Constrained value addition operator. More...
 
template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator- (const CheckedValue< LhsValueType, LhsCheckerType > &lhs, const CheckedValue< RhsValueType, RhsCheckerType > &rhs) -> decltype(LhsValueType(lhs) - RhsValueType(rhs))
 Constrained value subtraction operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator== (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs)==rhs)
 Constrained value equality operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator== (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs==ValueType(rhs))
 Constrained value equality operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator!= (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs) !=rhs)
 Constrained value inequality operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator!= (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs !=ValueType(rhs))
 Constrained value inequality operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator<= (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs)<=rhs)
 Constrained value less-than or equal-to operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator<= (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs<=ValueType(rhs))
 Constrained value less-than or equal-to operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator>= (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs) >=rhs)
 Constrained value greater-than or equal-to operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator>= (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs >=ValueType(rhs))
 Constrained value greater-than or equal-to operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator< (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs)< rhs)
 Constrained value less-than operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator< (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs< ValueType(rhs))
 Constrained value less-than operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator> (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs) > rhs)
 Constrained value greater-than operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator> (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs > ValueType(rhs))
 Constrained value greater-than ooperator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator* (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> std::enable_if_t<!IsMultipliable< CheckedValue< ValueType, CheckerType >, Other >::value, decltype(ValueType() *Other())>
 Constrained value multiplication operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator* (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> std::enable_if_t<!IsMultipliable< Other, CheckedValue< ValueType, CheckerType >>::value, decltype(Other() *ValueType())>
 Constrained value multiplication operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator/ (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs)/rhs)
 Constrained value division operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator/ (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs/ValueType(rhs))
 Constrained value division operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator+ (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs)+rhs)
 Constrained value addition operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator+ (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs+ValueType(rhs))
 Constrained value addition operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator- (const CheckedValue< ValueType, CheckerType > &lhs, const Other &rhs) -> decltype(ValueType(lhs) - rhs)
 Constrained value subtraction operator. More...
 
template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator- (const Other &lhs, const CheckedValue< ValueType, CheckerType > &rhs) -> decltype(lhs - ValueType(rhs))
 Constrained value subtraction operator. More...
 

Detailed Description

template<typename ValueType, typename CheckerType = NoOpChecker<ValueType>>
class playrho::CheckedValue< ValueType, CheckerType >

Checked value.

Template Parameters
ValueTypeType of the underlying value that will get checked.
CheckerTypeChecker type to check or possibly transform values with.
Examples
World.cpp.

Constructor & Destructor Documentation

◆ CheckedValue()

template<typename ValueType , typename CheckerType = NoOpChecker<ValueType>>
constexpr playrho::CheckedValue< ValueType, CheckerType >::CheckedValue ( value_type  value)
inlineconstexprnoexcept

Initializing constructor.

Todo:
Consider marking this function "explicit".

Member Function Documentation

◆ operator value_type()

template<typename ValueType , typename CheckerType = NoOpChecker<ValueType>>
constexpr playrho::CheckedValue< ValueType, CheckerType >::operator value_type ( ) const
inlineconstexprnoexcept

Gets the underlying value.

Todo:
Consider marking this function "explicit".

Friends And Related Function Documentation

◆ operator!=() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator!= ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) != RhsValueType(rhs))
related

Constrained value inequality operator for value types which support it.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator!=() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator!= ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) != rhs)
related

Constrained value inequality operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator!=() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator!= ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs != ValueType(rhs))
related

Constrained value inequality operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator*() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator* ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) * RhsValueType(rhs))
related

Constrained value multiplication operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator*() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator* ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> std::enable_if_t<!IsMultipliable<CheckedValue<ValueType, CheckerType>, Other>::value, decltype(ValueType()*Other())>
related

Constrained value multiplication operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator*() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator* ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> std::enable_if_t<!IsMultipliable<Other, CheckedValue<ValueType, CheckerType>>::value, decltype(Other()*ValueType())>
related

Constrained value multiplication operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator+() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator+ ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) + RhsValueType(rhs))
related

Constrained value addition operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator+() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator+ ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) + rhs)
related

Constrained value addition operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator+() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator+ ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs + ValueType(rhs))
related

Constrained value addition operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator-() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator- ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) - RhsValueType(rhs))
related

Constrained value subtraction operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator-() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator- ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) - rhs)
related

Constrained value subtraction operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator-() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator- ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs - ValueType(rhs))
related

Constrained value subtraction operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator/() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator/ ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) / RhsValueType(rhs))
related

Constrained value division operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator/() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator/ ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) / rhs)
related

Constrained value division operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator/() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator/ ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs / ValueType(rhs))
related

Constrained value division operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator<() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator< ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) < RhsValueType(rhs))
related

Constrained value less-than operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator<() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator< ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) < rhs)
related

Constrained value less-than operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator<() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator< ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs < ValueType(rhs))
related

Constrained value less-than operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator<<()

template<typename ValueType , typename CheckerType >
auto operator<< ( ::std::ostream &  os,
const CheckedValue< ValueType, CheckerType > &  value 
) -> decltype(os << ValueType(value))
related

Constrained value stream output operator for value types which support it.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.

◆ operator<=() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator<= ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) <= RhsValueType(rhs))
related

Constrained value less-than or equal-to operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator<=() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator<= ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) <= rhs)
related

Constrained value less-than or equal-to operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator<=() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator<= ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs <= ValueType(rhs))
related

Constrained value less-than or equal-to operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator==() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator== ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) == RhsValueType(rhs))
related

Constrained value equality operator for value types which support it.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator==() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator== ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) == rhs)
related

Constrained value equality operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator==() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator== ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs == ValueType(rhs))
related

Constrained value equality operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator>() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator> ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) > RhsValueType(rhs))
related

Constrained value greater-than operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator>() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator> ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) > rhs)
related

Constrained value greater-than operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator>() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator> ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs > ValueType(rhs))
related

Constrained value greater-than ooperator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator>=() [1/3]

template<typename LhsValueType , typename LhsCheckerType , typename RhsValueType , typename RhsCheckerType >
constexpr auto operator>= ( const CheckedValue< LhsValueType, LhsCheckerType > &  lhs,
const CheckedValue< RhsValueType, RhsCheckerType > &  rhs 
) -> decltype(LhsValueType(lhs) >= RhsValueType(rhs))
related

Constrained value greater-than or equal-to operator.

Template Parameters
LhsValueTypeType of the value used by the left hand side checked value.
LhsCheckerTypeType of the checker used by the left hand side checked value.
RhsValueTypeType of the value used by the right hand side checked value.
RhsCheckerTypeType of the checker used by the right hand side checked value.

◆ operator>=() [2/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator>= ( const CheckedValue< ValueType, CheckerType > &  lhs,
const Other &  rhs 
) -> decltype(ValueType(lhs) >= rhs)
related

Constrained value greater-than or equal-to operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

◆ operator>=() [3/3]

template<typename ValueType , typename CheckerType , typename Other >
constexpr auto operator>= ( const Other &  lhs,
const CheckedValue< ValueType, CheckerType > &  rhs 
) -> decltype(lhs >= ValueType(rhs))
related

Constrained value greater-than or equal-to operator.

Template Parameters
ValueTypeType of the value used by the checked value.
CheckerTypeType of the checker used by the checked value.
OtherType of the other value that this operation will operator with.

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