11 #include <type_traits>
18 static_assert (std::is_enum_v<T>,
"The instantiating type should be a enumeration");
20 using St_t = std::underlying_type_t<T>;
26 : Storage_ {
static_cast<St_t
> (t) }
30 explicit operator bool ()
const
37 Storage_ &= other.Storage_;
43 Storage_ |= other.Storage_;
61 #define DECLARE_BIT_FLAGS(F) \
62 inline LC::Util::BitFlags<F> operator& (F left, F right) \
64 return LC::Util::BitFlags<F> { left } & right; \
66 inline LC::Util::BitFlags<F> operator| (F left, F right) \
68 return LC::Util::BitFlags<F> { left } | right; \