32 #include <type_traits>
41 static_assert (std::is_enum<T>::value,
"The instantiating type should be a enumeration");
43 using St_t = std::underlying_type_t<T>;
49 : Storage_ { static_cast<St_t> (t) }
53 explicit operator bool ()
const
60 Storage_ &= other.Storage_;
66 Storage_ |= other.Storage_;
85 #define DECLARE_BIT_FLAGS(F) \
86 inline LC::Util::BitFlags<F> operator& (F left, F right) \
88 return LC::Util::BitFlags<F> { left } & right; \
90 inline LC::Util::BitFlags<F> operator| (F left, F right) \
92 return LC::Util::BitFlags<F> { left } | right; \