diff --git a/include/magic_enum.hpp b/include/magic_enum.hpp index 5388f02..3a66d4b 100644 --- a/include/magic_enum.hpp +++ b/include/magic_enum.hpp @@ -1357,9 +1357,11 @@ namespace istream_operators { template = 0> std::basic_istream& operator>>(std::basic_istream& is, E& value) { - std::basic_string in; - is >> in; - if (const auto v = enum_cast(in)) { + using D = std::decay_t; + + std::basic_string s; + is >> s; + if (const auto v = enum_cast(s)) { value = *v; } else { is.setstate(std::ios::failbit);