11 using bit_type = BitType;
12 using mask_type = typename ::std::underlying_type<bit_type>::type;
15 MUDA_GENERIC MUDA_CONSTEXPR
Flags() MUDA_NOEXCEPT : m_mask(0) {}
17 MUDA_GENERIC MUDA_CONSTEXPR
Flags(BitType bit) MUDA_NOEXCEPT
18 : m_mask(
static_cast<mask_type
>(bit))
24 MUDA_GENERIC MUDA_CONSTEXPR
explicit Flags(mask_type flags) MUDA_NOEXCEPT : m_mask(flags)
31 MUDA_GENERIC MUDA_CONSTEXPR
bool operator<(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
33 return m_mask < rhs.m_mask;
36 MUDA_GENERIC MUDA_CONSTEXPR
bool operator<=(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
38 return m_mask <= rhs.m_mask;
41 MUDA_GENERIC MUDA_CONSTEXPR
bool operator>(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
43 return m_mask > rhs.m_mask;
46 MUDA_GENERIC MUDA_CONSTEXPR
bool operator>=(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
48 return m_mask >= rhs.m_mask;
51 MUDA_GENERIC MUDA_CONSTEXPR
bool operator==(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
53 return m_mask == rhs.m_mask;
56 MUDA_GENERIC MUDA_CONSTEXPR
bool operator!=(
Flags<BitType> const& rhs)
const MUDA_NOEXCEPT
58 return m_mask != rhs.m_mask;
63 MUDA_GENERIC MUDA_CONSTEXPR
bool operator!()
const MUDA_NOEXCEPT
101 m_mask ^= rhs.m_mask;
106 explicit MUDA_GENERIC MUDA_CONSTEXPR
operator bool()
const MUDA_NOEXCEPT
111 explicit MUDA_GENERIC MUDA_CONSTEXPR
operator mask_type()
const MUDA_NOEXCEPT
116 MUDA_GENERIC MUDA_CONSTEXPR
bool has(BitType bit)
const MUDA_NOEXCEPT
118 return (m_mask &
static_cast<mask_type
>(bit)) ==
static_cast<mask_type
>(bit);