class Flags

template<typename Enum, typename Storage = u32>

Wrapper around an enum that allows simple use of bitwise logic operations.

Public

Constructors

Flags<Enum, Storage>

Flags<Enum, Storage>() = default

Flags<Enum, Storage>

constexpr Flags<Enum, Storage>(Enum value)

Flags<Enum, Storage>

constexpr Flags<Enum, Storage>(const Flags<Enum, Storage> &value)

Flags<Enum, Storage>

constexpr explicit Flags<Enum, Storage>(Storage bits)

Methods

IsSet

bool IsSet(Enum value) const

Checks whether all of the provided bits are set

IsSetAny

bool IsSetAny(Enum value) const

Checks whether any of the provided bits are set

IsSetAny

bool IsSetAny(const Flags<Enum, Storage> &value) const

Checks whether any of the provided bits are set

IsSetAll

bool IsSetAll(const Flags<Enum, Storage> &value) const

Checks whether all of the provided bits are set

Set

Flags<Enum, Storage> &Set(Enum value)

Activates all of the provided bits.

Unset

void Unset(Enum value)

Deactivates all of the provided bits.

Operators

operator==

bool operator==(Enum rhs) const

operator==

bool operator==(const Flags<Enum, Storage> &rhs) const

operator==

bool operator==(bool rhs) const

operator!=

bool operator!=(Enum rhs) const

operator!=

bool operator!=(const Flags<Enum, Storage> &rhs) const

operator=

Flags<Enum, Storage> &operator=(Enum rhs)

operator=

Flags<Enum, Storage> &operator=(const Flags<Enum, Storage> &rhs)

operator|=

Flags<Enum, Storage> &operator|=(Enum rhs)

operator|=

Flags<Enum, Storage> &operator|=(const Flags<Enum, Storage> &rhs)

operator|

Flags<Enum, Storage> operator|(Enum rhs) const

operator|

Flags<Enum, Storage> operator|(const Flags<Enum, Storage> &rhs) const

operator&=

Flags<Enum, Storage> &operator&=(Enum rhs)

operator&=

Flags<Enum, Storage> &operator&=(const Flags<Enum, Storage> &rhs)

operator&

Flags<Enum, Storage> operator&(Enum rhs) const

operator&

Flags<Enum, Storage> operator&(const Flags<Enum, Storage> &rhs) const

operator^=

Flags<Enum, Storage> &operator^=(Enum rhs)

operator^=

Flags<Enum, Storage> &operator^=(const Flags<Enum, Storage> &rhs)

operator^

Flags<Enum, Storage> operator^(Enum rhs) const

operator^

Flags<Enum, Storage> operator^(const Flags<Enum, Storage> &rhs) const

operator~

Flags<Enum, Storage> operator~() const

operator bool

operator bool() const

operator unsigned char

operator u8() const

operator unsigned short

operator u16() const

operator unsigned int

operator u32() const

Private

Fields

mBits

InternalType mBits