From 61b0cdf8ba1ba2d9c367ebcf4e237ad804e3f6eb Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Fri, 26 May 2023 11:10:30 +0200 Subject: [PATCH] Add binary operands to chars_format --- include/boost/charconv/chars_format.hpp | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) 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