CommonLibSSE (powerof3)
REX::Enum< E, U > Class Template Reference

#include <Enum.h>

Public Types

using enum_type = E
 
using underlying_type = U
 

Public Member Functions

constexpr Enum () noexcept=default
 
constexpr Enum (const Enum &) noexcept=default
 
constexpr Enum (Enum &&) noexcept=default
 
template<class U2 >
constexpr Enum (Enum< E, U2 > a_rhs) noexcept
 
constexpr Enum (E a_value) noexcept
 
 ~Enum () noexcept=default
 
constexpr Enumoperator= (const Enum &) noexcept=default
 
constexpr Enumoperator= (Enum &&) noexcept=default
 
template<class U2 >
constexpr Enumoperator= (Enum< E, U2 > a_rhs) noexcept
 
constexpr Enumoperator= (E a_value) noexcept
 
constexpr operator bool () const noexcept
 
constexpr E operator* () const noexcept
 
constexpr E get () const noexcept
 
constexpr U underlying () const noexcept
 

Friends

constexpr friend bool operator== (Enum a_lhs, Enum a_rhs) noexcept
 
constexpr friend bool operator== (Enum a_lhs, E a_rhs) noexcept
 
constexpr friend bool operator== (E a_lhs, Enum a_rhs) noexcept
 

Member Typedef Documentation

◆ enum_type

template<class E , class U = std::underlying_type_t<E>>
using REX::Enum< E, U >::enum_type = E

◆ underlying_type

template<class E , class U = std::underlying_type_t<E>>
using REX::Enum< E, U >::underlying_type = U

Constructor & Destructor Documentation

◆ Enum() [1/5]

template<class E , class U = std::underlying_type_t<E>>
constexpr REX::Enum< E, U >::Enum ( )
constexprdefaultnoexcept

◆ Enum() [2/5]

template<class E , class U = std::underlying_type_t<E>>
constexpr REX::Enum< E, U >::Enum ( const Enum< E, U > &  )
constexprdefaultnoexcept

◆ Enum() [3/5]

template<class E , class U = std::underlying_type_t<E>>
constexpr REX::Enum< E, U >::Enum ( Enum< E, U > &&  )
constexprdefaultnoexcept

◆ Enum() [4/5]

template<class E , class U = std::underlying_type_t<E>>
template<class U2 >
constexpr REX::Enum< E, U >::Enum ( Enum< E, U2 >  a_rhs)
inlineconstexprnoexcept

◆ Enum() [5/5]

template<class E , class U = std::underlying_type_t<E>>
constexpr REX::Enum< E, U >::Enum ( a_value)
inlineconstexprnoexcept

◆ ~Enum()

template<class E , class U = std::underlying_type_t<E>>
REX::Enum< E, U >::~Enum ( )
defaultnoexcept

Member Function Documentation

◆ get()

template<class E , class U = std::underlying_type_t<E>>
constexpr E REX::Enum< E, U >::get ( ) const
inlineconstexprnoexcept

◆ operator bool()

template<class E , class U = std::underlying_type_t<E>>
constexpr REX::Enum< E, U >::operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*()

template<class E , class U = std::underlying_type_t<E>>
constexpr E REX::Enum< E, U >::operator* ( ) const
inlineconstexprnoexcept

◆ operator=() [1/4]

template<class E , class U = std::underlying_type_t<E>>
constexpr Enum& REX::Enum< E, U >::operator= ( const Enum< E, U > &  )
constexprdefaultnoexcept

◆ operator=() [2/4]

template<class E , class U = std::underlying_type_t<E>>
constexpr Enum& REX::Enum< E, U >::operator= ( a_value)
inlineconstexprnoexcept

◆ operator=() [3/4]

template<class E , class U = std::underlying_type_t<E>>
constexpr Enum& REX::Enum< E, U >::operator= ( Enum< E, U > &&  )
constexprdefaultnoexcept

◆ operator=() [4/4]

template<class E , class U = std::underlying_type_t<E>>
template<class U2 >
constexpr Enum& REX::Enum< E, U >::operator= ( Enum< E, U2 >  a_rhs)
inlineconstexprnoexcept

◆ underlying()

template<class E , class U = std::underlying_type_t<E>>
constexpr U REX::Enum< E, U >::underlying ( ) const
inlineconstexprnoexcept

Friends And Related Function Documentation

◆ operator== [1/3]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend bool operator== ( a_lhs,
Enum< E, U >  a_rhs 
)
friend

◆ operator== [2/3]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend bool operator== ( Enum< E, U >  a_lhs,
a_rhs 
)
friend

◆ operator== [3/3]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend bool operator== ( Enum< E, U >  a_lhs,
Enum< E, U >  a_rhs 
)
friend

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