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:
parent
b6bf0aa2a8
commit
d2ec62779f
1 changed files with 5 additions and 3 deletions
|
|
@ -1357,9 +1357,11 @@ namespace istream_operators {
|
||||||
|
|
||||||
template <typename Char, typename Traits, typename E, detail::enable_if_t<E, int> = 0>
|
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_istream<Char, Traits>& operator>>(std::basic_istream<Char, Traits>& is, E& value) {
|
||||||
std::basic_string<Char, Traits> in;
|
using D = std::decay_t<E>;
|
||||||
is >> in;
|
|
||||||
if (const auto v = enum_cast<E>(in)) {
|
std::basic_string<Char, Traits> s;
|
||||||
|
is >> s;
|
||||||
|
if (const auto v = enum_cast<D>(s)) {
|
||||||
value = *v;
|
value = *v;
|
||||||
} else {
|
} else {
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue