Template Class Flags

Class Documentation

template<IntegralEnum BitType>
class Flags

A Flags wrapper for transforming bit vectors into flags with bitwise operators. Inspired by cpp vulkan’s implementation

Template Parameters:

BitType – the underlying bit enum type

Public Types

using MaskType = std::underlying_type_t<BitType>

Public Functions

inline constexpr Flags(BitType bit) noexcept
inline explicit constexpr Flags(MaskType flags) noexcept
inline constexpr Flags() noexcept
constexpr Flags(const Flags &other) noexcept = default
auto operator<=>(const Flags&) const = default
inline constexpr bool operator!() const noexcept
inline constexpr Flags operator&(const Flags &other) const noexcept
inline constexpr Flags operator|(const Flags &other) const noexcept
inline constexpr Flags operator^(const Flags &other) const noexcept
inline constexpr Flags operator~() const noexcept
constexpr Flags &operator=(const Flags &other) noexcept = default
inline constexpr Flags &operator|=(const Flags &other) noexcept
inline constexpr Flags &operator&=(const Flags &other) noexcept
inline constexpr Flags &operator^=(const Flags &other) noexcept
inline explicit constexpr operator bool() const noexcept
inline explicit constexpr operator MaskType() const noexcept
inline constexpr MaskType get() const noexcept