Add binary operands to chars_format

This commit is contained in:
Matt Borland
2023-05-26 11:10:30 +02:00
parent 3daf7bc899
commit 61b0cdf8ba

View File

@@ -17,6 +17,41 @@ enum class chars_format : unsigned
general = fixed | scientific
};
constexpr chars_format operator~ (chars_format fmt) noexcept
{
return static_cast<chars_format>(~static_cast<unsigned>(fmt));
}
constexpr chars_format operator| (chars_format lhs, chars_format rhs) noexcept
{
return static_cast<chars_format>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs));
}
constexpr chars_format operator& (chars_format lhs, chars_format rhs) noexcept
{
return static_cast<chars_format>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs));
}
constexpr chars_format operator^ (chars_format lhs, chars_format rhs) noexcept
{
return static_cast<chars_format>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(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