diff --git a/include/magic_enum.hpp b/include/magic_enum.hpp index 5ef4a9a..b202722 100644 --- a/include/magic_enum.hpp +++ b/include/magic_enum.hpp @@ -466,7 +466,7 @@ std::basic_ostream& operator<<(std::basic_ostream& o namespace bitwise_operators { template > -constexpr E operator~(E rhs) { +constexpr E operator~(E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator~ requires enum type."); using U = std::underlying_type_t; @@ -474,7 +474,7 @@ constexpr E operator~(E rhs) { } template > -constexpr E operator|(E lhs, E rhs) { +constexpr E operator|(E lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator| requires enum type."); using U = std::underlying_type_t; @@ -482,7 +482,7 @@ constexpr E operator|(E lhs, E rhs) { } template > -constexpr E operator&(E lhs, E rhs) { +constexpr E operator&(E lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator& requires enum type."); using U = std::underlying_type_t; @@ -490,7 +490,7 @@ constexpr E operator&(E lhs, E rhs) { } template > -constexpr E operator^(E lhs, E rhs) { +constexpr E operator^(E lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator^ requires enum type."); using U = std::underlying_type_t; @@ -498,21 +498,21 @@ constexpr E operator^(E lhs, E rhs) { } template > -constexpr E& operator|=(E& lhs, E rhs) { +constexpr E& operator|=(E& lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator|= requires enum type."); return lhs = lhs | rhs; } template > -constexpr E& operator&=(E& lhs, E rhs) { +constexpr E& operator&=(E& lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator%= requires enum type."); return lhs = lhs & rhs; } template > -constexpr E& operator^=(E& lhs, E rhs) { +constexpr E& operator^=(E& lhs, E rhs) noexcept { static_assert(detail::check_enum_v, "magic_enum::bitwise_operators::operator^= requires enum type."); return lhs = lhs ^ rhs;