Section: 220.127.116.11.2 [facet.num.put.virtuals] Status: CD1 Submitter: Howard Hinnant Opened: 2000-12-05 Last modified: 2016-02-10
Priority: Not Prioritized
View other active issues in [facet.num.put.virtuals].
View all other issues in [facet.num.put.virtuals].
View all issues with CD1 status.
Paragraph 16 mistakenly singles out integral types for inserting thousands_sep() characters. This conflicts with the syntax for floating point numbers described under 18.104.22.168/2.
Change paragraph 16 from:
For integral types, punct.thousands_sep() characters are inserted into the sequence as determined by the value returned by punct.do_grouping() using the method described in 22.214.171.124.2 [facet.numpunct.virtuals].
For arithmetic types, punct.thousands_sep() characters are inserted into the sequence as determined by the value returned by punct.do_grouping() using the method described in 126.96.36.199.2 [facet.numpunct.virtuals].
[ Copenhagen: Opinions were divided about whether this is actually an inconsistency, but at best it seems to have been unintentional. This is only an issue for floating-point output: The standard is unambiguous that implementations must parse thousands_sep characters when performing floating-point. The standard is also unambiguous that this requirement does not apply to the "C" locale. ]
[ A survey of existing practice is needed; it is believed that some implementations do insert thousands_sep characters for floating-point output and others fail to insert thousands_sep characters for floating-point input even though this is unambiguously required by the standard. ]
[Post-Curaçao: the above proposed resolution is the consensus of Howard, Bill, Pete, Benjamin, Nathan, Dietmar, Boris, and Martin.]