And yet more fixes to allow duplicate flags on parse

This commit is contained in:
Howard Hinnant
2018-04-15 15:32:24 -04:00
parent e5c69d84ab
commit d53db7a1cb
2 changed files with 389 additions and 273 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1951,6 +1951,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
minutes offset_local{};
auto offptr = offset ? offset : &offset_local;
fields<CT> fds{};
fds.has_tod = true;
from_stream(is, fmt, fds, abbrev, offptr);
if (!fds.ymd.ok())
is.setstate(ios::failbit);
@@ -2071,6 +2072,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
minutes offset_local{};
auto offptr = offset ? offset : &offset_local;
fields<CT> fds{};
fds.has_tod = true;
from_stream(is, fmt, fds, abbrev, offptr);
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
is.setstate(ios::failbit);
@@ -2182,6 +2184,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
minutes offset_local{};
auto offptr = offset ? offset : &offset_local;
fields<CT> fds{};
fds.has_tod = true;
from_stream(is, fmt, fds, abbrev, offptr);
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
is.setstate(ios::failbit);