diff --git a/src/libraries/kutil/include/kutil/enum_bitfields.h b/src/libraries/kutil/include/kutil/enum_bitfields.h index d4ad2b7..6e24c2b 100644 --- a/src/libraries/kutil/include/kutil/enum_bitfields.h +++ b/src/libraries/kutil/include/kutil/enum_bitfields.h @@ -86,6 +86,16 @@ template constexpr typename std::enable_if::type operator && (E rhs, E lhs) { return (rhs & lhs) == lhs; } +/// Generic 'has' for non-marked bitfields +template +constexpr bool has(E set, F flags) +{ + return + (static_cast::type>(set) & + static_cast::type>(flags)) == + static_cast::type>(flags); +} + } // namespace bitfields } // namespace kutil