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

#include <EnumSet.h>

Public Types

using enum_type = E
 
using underlying_type = U
 

Public Member Functions

constexpr EnumSet () noexcept=default
 
constexpr EnumSet (const EnumSet &) noexcept=default
 
constexpr EnumSet (EnumSet &&) noexcept=default
 
template<class U2 >
constexpr EnumSet (EnumSet< E, U2 > a_rhs) noexcept
 
template<class... Args>
constexpr EnumSet (Args... a_values) noexcept requires(std
 
 ~EnumSet () noexcept=default
 
constexpr EnumSetoperator= (const EnumSet &) noexcept=default
 
constexpr EnumSetoperator= (EnumSet &&) noexcept=default
 
template<class U2 >
constexpr EnumSetoperator= (EnumSet< E, U2 > a_rhs) noexcept
 
constexpr EnumSetoperator= (E a_value) noexcept
 
constexpr operator bool () const noexcept
 
constexpr E operator* () const noexcept
 
constexpr E get () const noexcept
 
constexpr U underlying () const noexcept
 
template<class... Args>
constexpr EnumSetset (Args... a_args) noexcept requires(std
 
template<class... Args>
constexpr EnumSetset (bool a_set, Args... a_args) noexcept requires(std
 
template<class... Args>
constexpr EnumSetreset (Args... a_args) noexcept requires(std
 
constexpr EnumSetreset () noexcept
 
template<class... Args>
constexpr bool any (Args... a_args) const noexcept requires(std
 
template<class... Args>
constexpr bool all (Args... a_args) const noexcept requires(std
 
template<class... Args>
constexpr bool none (Args... a_args) const noexcept requires(std
 

Friends

constexpr friend bool operator== (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend bool operator== (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend bool operator== (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend std::strong_ordering operator<=> (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend std::strong_ordering operator<=> (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend std::strong_ordering operator<=> (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator& (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator& (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator& (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator&= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator&= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator| (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator| (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator| (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator|= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator|= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator^ (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator^ (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator^ (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator^= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator^= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator+ (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator+ (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator+ (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator+= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator+= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator- (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator- (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator- (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator-= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator-= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator<< (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator<< (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator<< (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator<<= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator<<= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator>> (EnumSet a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSet operator>> (EnumSet a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSet operator>> (E a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator>>= (EnumSet &a_lhs, EnumSet a_rhs) noexcept
 
constexpr friend EnumSetoperator>>= (EnumSet &a_lhs, E a_rhs) noexcept
 
constexpr friend EnumSetoperator~ (EnumSet &a_lhs) noexcept
 

Member Typedef Documentation

◆ enum_type

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

◆ underlying_type

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

Constructor & Destructor Documentation

◆ EnumSet() [1/5]

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

◆ EnumSet() [2/5]

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

◆ EnumSet() [3/5]

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

◆ EnumSet() [4/5]

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

◆ EnumSet() [5/5]

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr REX::EnumSet< E, U >::EnumSet ( Args...  a_values)
inlineconstexprnoexcept

◆ ~EnumSet()

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

Member Function Documentation

◆ all()

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr bool REX::EnumSet< E, U >::all ( Args...  a_args) const
inlineconstexprnoexcept

◆ any()

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr bool REX::EnumSet< E, U >::any ( Args...  a_args) const
inlineconstexprnoexcept

◆ get()

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

◆ none()

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr bool REX::EnumSet< E, U >::none ( Args...  a_args) const
inlineconstexprnoexcept

◆ operator bool()

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

◆ operator*()

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

◆ operator=() [1/4]

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

◆ operator=() [2/4]

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

◆ operator=() [3/4]

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

◆ operator=() [4/4]

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

◆ reset() [1/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr EnumSet& REX::EnumSet< E, U >::reset ( )
inlineconstexprnoexcept

◆ reset() [2/2]

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr EnumSet& REX::EnumSet< E, U >::reset ( Args...  a_args)
inlineconstexprnoexcept

◆ set() [1/2]

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr EnumSet& REX::EnumSet< E, U >::set ( Args...  a_args)
inlineconstexprnoexcept

◆ set() [2/2]

template<class E , class U = std::underlying_type_t<E>>
template<class... Args>
constexpr EnumSet& REX::EnumSet< E, U >::set ( bool  a_set,
Args...  a_args 
)
inlineconstexprnoexcept

◆ underlying()

template<class E , class U = std::underlying_type_t<E>>
constexpr U REX::EnumSet< 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 EnumSet operator& ( a_lhs,
EnumSet< E, U >  a_rhs 
)
friend

◆ operator& [2/3]

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

◆ operator& [3/3]

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

◆ operator&= [1/2]

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

◆ operator&= [2/2]

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

◆ operator+ [1/3]

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

◆ operator+ [2/3]

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

◆ operator+ [3/3]

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

◆ operator+= [1/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator+= ( EnumSet< E, U > &  a_lhs,
a_rhs 
)
friend

◆ operator+= [2/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator+= ( EnumSet< E, U > &  a_lhs,
EnumSet< E, U >  a_rhs 
)
friend

◆ operator- [1/3]

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

◆ operator- [2/3]

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

◆ operator- [3/3]

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

◆ operator-= [1/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator-= ( EnumSet< E, U > &  a_lhs,
a_rhs 
)
friend

◆ operator-= [2/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator-= ( EnumSet< E, U > &  a_lhs,
EnumSet< E, U >  a_rhs 
)
friend

◆ operator<< [1/3]

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

◆ operator<< [2/3]

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

◆ operator<< [3/3]

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

◆ operator<<= [1/2]

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

◆ operator<<= [2/2]

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

◆ operator<=> [1/3]

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

◆ operator<=> [2/3]

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

◆ operator<=> [3/3]

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

◆ operator== [1/3]

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

◆ operator== [2/3]

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

◆ operator== [3/3]

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

◆ operator>> [1/3]

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

◆ operator>> [2/3]

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

◆ operator>> [3/3]

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

◆ operator>>= [1/2]

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

◆ operator>>= [2/2]

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

◆ operator^ [1/3]

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

◆ operator^ [2/3]

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

◆ operator^ [3/3]

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

◆ operator^= [1/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator^= ( EnumSet< E, U > &  a_lhs,
a_rhs 
)
friend

◆ operator^= [2/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator^= ( EnumSet< E, U > &  a_lhs,
EnumSet< E, U >  a_rhs 
)
friend

◆ operator| [1/3]

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

◆ operator| [2/3]

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

◆ operator| [3/3]

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

◆ operator|= [1/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator|= ( EnumSet< E, U > &  a_lhs,
a_rhs 
)
friend

◆ operator|= [2/2]

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator|= ( EnumSet< E, U > &  a_lhs,
EnumSet< E, U >  a_rhs 
)
friend

◆ operator~

template<class E , class U = std::underlying_type_t<E>>
constexpr friend EnumSet& operator~ ( EnumSet< E, U > &  a_lhs)
friend

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