diff --git a/include/boost/charconv/chars_format.hpp b/include/boost/charconv/chars_format.hpp index 5567420..fbed1a8 100644 --- a/include/boost/charconv/chars_format.hpp +++ b/include/boost/charconv/chars_format.hpp @@ -17,6 +17,41 @@ enum class chars_format : unsigned general = fixed | scientific }; +constexpr chars_format operator~ (chars_format fmt) noexcept +{ + return static_cast(~static_cast(fmt)); +} + +constexpr chars_format operator| (chars_format lhs, chars_format rhs) noexcept +{ + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +constexpr chars_format operator& (chars_format lhs, chars_format rhs) noexcept +{ + return static_cast(static_cast(lhs) & static_cast(rhs)); +} + +constexpr chars_format operator^ (chars_format lhs, chars_format rhs) noexcept +{ + return static_cast(static_cast(lhs) ^ static_cast(rhs)); +} + +constexpr chars_format operator|= (chars_format lhs, chars_format rhs) noexcept +{ + return lhs = lhs | rhs; +} + +constexpr chars_format operator&= (chars_format lhs, chars_format rhs) noexcept +{ + return lhs = lhs & rhs; +} + +constexpr chars_format operator^= (chars_format lhs, chars_format rhs) noexcept +{ + return lhs = lhs ^ rhs; +} + }} // Namespaces #endif // BOOST_CHARCONV_CHARS_FROMAT_HPP