1
0
Fork 0
mirror of https://github.com/Neargye/magic_enum.git synced 2026-01-09 23:34:23 +00:00

fix operator>>

This commit is contained in:
neargye 2022-04-07 19:24:11 +04:00
parent b6bf0aa2a8
commit d2ec62779f

View file

@ -1357,9 +1357,11 @@ namespace istream_operators {
template <typename Char, typename Traits, typename E, detail::enable_if_t<E, int> = 0>
std::basic_istream<Char, Traits>& operator>>(std::basic_istream<Char, Traits>& is, E& value) {
std::basic_string<Char, Traits> in;
is >> in;
if (const auto v = enum_cast<E>(in)) {
using D = std::decay_t<E>;
std::basic_string<Char, Traits> s;
is >> s;
if (const auto v = enum_cast<D>(s)) {
value = *v;
} else {
is.setstate(std::ios::failbit);