template<s32 N, typename Enum, typename Storage = std::underlying_type_t<Enum>>
sead::TypedLongBitFlag class

Public types

using Word = Storage
using RawWord = std::conditional_t<(sizeof(Storage)> 4), u64, u32>

Public functions

void makeAllZero()
void makeAllOne()
auto getWord(Enum bit) -> Word&
auto getWord(Enum bit) const -> const Word&
auto isZero() const -> bool
void setBit(Enum bit)
void resetBit(Enum bit)
void changeBit(Enum bit, bool on)
void toggleBit(Enum bit)
auto isOnBit(Enum bit) const -> bool
auto isOffBit(Enum bit) const -> bool
auto countOnBit() const -> int
Popcount.

Protected functions

template<typename T>
auto getWord(Enum bit, const T& fn) -> auto
template<typename T>
auto getWord(Enum bit, const T& fn) const -> auto

Protected static variables

static s32 BitsPerWord constexpr
static s32 Shift constexpr

Protected variables

std::array<Word, N/BitsPerWord> mStorage