36template <
size_t Nopts>
39 static_assert(Nopts <= 64,
"Error! bit_flags does not support more than 64 options");
42 (Nopts <= 8), uint8_t,
47 TIMEMORY_INLINE
bool test()
const;
51 TIMEMORY_INLINE
void set(
bool v);
54 TIMEMORY_INLINE
void reset() { m_state_value = 0; }
66template <
size_t Nopts>
71 return (m_state_value & index<Idx>());
74template <
size_t Nopts>
78 return (m_state_value & index(idx));
81template <
size_t Nopts>
86 bool _curr = test<Idx>();
90 m_state_value |= index<Idx>();
92 m_state_value &= (~index<Idx>());
96template <
size_t Nopts>
100 bool _curr = test(idx);
104 m_state_value |= index(idx);
106 m_state_value &= (~index(idx));
110template <
size_t Nopts>
118template <
size_t Nopts>
120bit_flags<Nopts>::index(value_type idx)
typename std::conditional< B, Lhs, Rhs >::type conditional_t
bool test(value_type idx) const
void set(value_type idx, bool v)
value_type get_state_value() const
std::conditional_t<(Nopts<=8), uint8_t, std::conditional_t<(Nopts<=16), uint16_t, std::conditional_t<(Nopts<=32), uint32_t, uint64_t > > > value_type
void set_state_value(value_type v)