Created on 2023-07-28.00:00:00 last changed 1 month ago
Proposed resolution:
This wording is relative to N4950.
Modify [time.parse] as indicated:
-17- If the from_stream overload fails to parse everything specified by the format string, or if insufficient information is parsed to specify a complete duration, time point, or calendrical data structure, setstate(ios_base::failbit) is called on the basic_istream.
-?- A format string can contain multiple flags that correspond to the same information, (e.g., "%Y %C%y" or "%R %H:%M"). If such a format string is successfully parsed but the extracted dates or times are not consistent, the value assigned to the tp argument is unspecified.
[Example:
The value of y is unspecified; y.ok() can be false. — end example]chrono::year y; stringstream("1905 1915") >> parse("%Y %C%y", y);
A call to chrono::parse can encounter redundant or contradictory data, e.g.
or even simpler:stringstream("2023 2022") >> chrono::parse("%Y %C%y", yr);
These cases can both be successfully parsed, as the input stream contains the expected values in the expected format. But what value will yr have after it returns?stringstream("2023 2022") >> chrono::parse("%Y %Y", yr);
History | |||
---|---|---|---|
Date | User | Action | Args |
2023-07-28 11:50:02 | admin | set | messages: + msg13687 |
2023-07-28 00:00:00 | admin | create |