2512. Y2K bites; what is an "unambiguous year identifier"?

Section: 25.4.5.1.2 [locale.time.get.virtuals] Status: Open Submitter: Hubert Tong Opened: 2015-06-19 Last modified: 2017-09-10

Priority: 4

View all other issues in [locale.time.get.virtuals].

View all issues with Open status.

Discussion:

I recently encountered a failure related to questionable use of do_get_year. The platform where the code happened to work had an implementation which handled certain three-digit "year identifiers" as the number of years since 1900 (this article describes such an implementation).

25.4.5.1.2 [locale.time.get.virtuals] makes it implementation defined whether two-digit years are accepted, etc., but does not say anything specifically about three-digit years.

The implementation freedom to not report errors in 25.4.5.1 [locale.time.get] paragraph 1 also seems to be too broad.

See also the discussion following c++std-lib-38042.

[2016-08 Chicago]

Wed PM: This has been this way since C++98. Don't think it's a P2.

Change to P4, and move to Open.

Proposed resolution: