diff options
-rw-r--r-- | src/common/Utilities/EnumFlag.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/Utilities/EnumFlag.h b/src/common/Utilities/EnumFlag.h index 528625c1f08..8366af6c4f4 100644 --- a/src/common/Utilities/EnumFlag.h +++ b/src/common/Utilities/EnumFlag.h @@ -28,7 +28,7 @@ constexpr bool IsEnumFlag(T) { return false; } namespace EnumTraits { template<typename T> - using IsFlag = std::integral_constant<bool, IsEnumFlag(T{})>; + using IsFlag = std::conjunction<std::is_enum<T>, std::integral_constant<bool, IsEnumFlag(T{})>>; } template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr> @@ -64,7 +64,7 @@ inline constexpr T operator~(T value) template<typename T> class EnumFlag { - static_assert(EnumTraits::IsFlag<T>::value, "EnumFlag must be used only with enums that are specify EnumFlag::IsFlag"); + static_assert(EnumTraits::IsFlag<T>::value, "EnumFlag must be used only with enums that are marked as flags by DEFINE_ENUM_FLAG macro"); public: /*implicit*/ constexpr EnumFlag(T value) : _value(value) |