Low-Level Abstraction of Memory Access
llama::ProxyRefOpMixin< Derived, ValueType > Struct Template Reference

CRTP mixin for proxy reference types to support all compound assignment and increment/decrement operators. More...

#include <ProxyRefOpMixin.hpp>

Public Member Functions

constexpr auto operator+= (const ValueType &rhs) -> Derived &
 
constexpr auto operator-= (const ValueType &rhs) -> Derived &
 
constexpr auto operator*= (const ValueType &rhs) -> Derived &
 
constexpr auto operator/= (const ValueType &rhs) -> Derived &
 
constexpr auto operator%= (const ValueType &rhs) -> Derived &
 
constexpr auto operator<<= (const ValueType &rhs) -> Derived &
 
constexpr auto operator>>= (const ValueType &rhs) -> Derived &
 
constexpr auto operator&= (const ValueType &rhs) -> Derived &
 
constexpr auto operator|= (const ValueType &rhs) -> Derived &
 
constexpr auto operator^= (const ValueType &rhs) -> Derived &
 
constexpr auto operator++ () -> Derived &
 
constexpr auto operator++ (int) -> ValueType
 
constexpr auto operator-- () -> Derived &
 
constexpr auto operator-- (int) -> ValueType
 

Friends

constexpr friend void swap (Derived a, Derived b) noexcept
 

Detailed Description

template<typename Derived, typename ValueType>
struct llama::ProxyRefOpMixin< Derived, ValueType >

CRTP mixin for proxy reference types to support all compound assignment and increment/decrement operators.

Definition at line 13 of file ProxyRefOpMixin.hpp.

Member Function Documentation

◆ operator%=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator%= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 65 of file ProxyRefOpMixin.hpp.

◆ operator&=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator&= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 89 of file ProxyRefOpMixin.hpp.

◆ operator*=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator*= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 49 of file ProxyRefOpMixin.hpp.

◆ operator++() [1/2]

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator++ ( ) -> Derived&
inlineconstexpr

Definition at line 113 of file ProxyRefOpMixin.hpp.

◆ operator++() [2/2]

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator++ ( int  ) -> ValueType
inlineconstexpr

Definition at line 121 of file ProxyRefOpMixin.hpp.

◆ operator+=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator+= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 33 of file ProxyRefOpMixin.hpp.

◆ operator--() [1/2]

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator-- ( ) -> Derived&
inlineconstexpr

Definition at line 129 of file ProxyRefOpMixin.hpp.

◆ operator--() [2/2]

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator-- ( int  ) -> ValueType
inlineconstexpr

Definition at line 137 of file ProxyRefOpMixin.hpp.

◆ operator-=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator-= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 41 of file ProxyRefOpMixin.hpp.

◆ operator/=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator/= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 57 of file ProxyRefOpMixin.hpp.

◆ operator<<=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator<<= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 73 of file ProxyRefOpMixin.hpp.

◆ operator>>=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator>>= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 81 of file ProxyRefOpMixin.hpp.

◆ operator^=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator^= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 105 of file ProxyRefOpMixin.hpp.

◆ operator|=()

template<typename Derived , typename ValueType >
constexpr auto llama::ProxyRefOpMixin< Derived, ValueType >::operator|= ( const ValueType &  rhs) -> Derived&
inlineconstexpr

Definition at line 97 of file ProxyRefOpMixin.hpp.

Friends And Related Function Documentation

◆ swap

template<typename Derived , typename ValueType >
constexpr friend void swap ( Derived  a,
Derived  b 
)
friend

Definition at line 145 of file ProxyRefOpMixin.hpp.


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