60 template<
typename TEnum>
61 requires std::is_enum<TEnum>::value
62 constexpr Enum( TEnum element )
73 template<
typename TEnum>
74 requires std::is_enum<TEnum>::value
87 template<
typename TIntegral=
integer>
88 TIntegral
Integral()
const {
return static_cast<TIntegral
>(
data.Integrals.Array[0]); }
140 template<
typename TEnum>
141 requires std::is_enum<TEnum>::value
163 template<
typename TEnum>
164 requires std::is_enum<TEnum>::value
166 return Integral() ==
static_cast<typename std::underlying_type<TEnum>::type
>( rhs )
167 &&
TypeID() ==
typeid( TEnum );
175 template<
typename TEnum>
176 requires std::is_enum<TEnum>::value
178 return Integral() !=
static_cast<typename std::underlying_type<TEnum>::type
>( rhs )
179 ||
TypeID() !=
typeid( TEnum );
200 return ( std::type_index(
TypeID() )
201 < std::type_index(rhs.
TypeID() ) )
Placeholder data
The data that we encapsulate.
const std::type_info & TypeID() const
const Placeholder & Data() const
boxing::Enum Enum
Type alias in namespace alib.
bool operator==(const Enum &rhs) const
bool operator!=(TEnum rhs) const
TIntegral Integral() const
const Box & CastToBox() const
bool operator<(Enum const &rhs) const
Enum()
Default constructor.
constexpr Enum(TEnum element)
const std::type_info & TypeID() const
bool operator!=(const Enum &rhs) const
bool operator==(TEnum rhs) const
void * VoidP
Just a void pointer.