This page is a snapshot from the LWG issues list, see theLibrary Active Issues List for more information and the meaning ofC++11 status.
money_base::space andmoney_base::none onmoney_getSection: 28.3.4.7.2.3[locale.money.get.virtuals]Status:C++11Submitter: Martin SeborOpened: 2008-05-17Last modified: 2016-01-28
Priority:Not Prioritized
View all otherissues in [locale.money.get.virtuals].
View all issues withC++11 status.
Duplicate of:670
Discussion:
In paragraph 2, 28.3.4.7.2.3[locale.money.get.virtuals] specifies the following:
Where
spaceornoneappears in the formatpattern, except at the end, optional white space (as recognizedbyct.is) is consumed after any required space.
This requirement can be (and has been) interpreted two mutuallyexclusive ways by different readers. One possible interpretationis that:
- where
money_base::spaceappears in the format, at leastone space is required, and- where
money_base::noneappears in the format, space isallowed but not required.
The other is that:
where either
money_base::spaceormoney_base::noneappears in the format, white space is optional.
[San Francisco:]
Martin will revise the proposed resolution.
[2009-07 Frankfurt:]
There is a noun missing from the proposed resolution. It's not clearthat the last sentence would be helpful, even if the word were notmissing:
In either case, any required MISSINGWORD followed by all optional whitespace (as recognized by
ct.is()) is consumed.Strike this sentence and move to Review.
[Howard: done.]
[2009-10 Santa Cruz:]
Move to Ready.
Proposed resolution:
I propose to change the text to make it clear that the firstinterpretation is intended, that is, to make following change to28.3.4.7.2.3[locale.money.get.virtuals], p. 2:
When
money_base::spaceormoney_base::noneappearsas the lastelementin the format pattern,except at the end, optionalwhite space (as recognized byno white space is consumed. Otherwise,wherect.is) is consumed afterany required space.money_base::spaceappears in any of the initialelements of the format pattern, at least one white space character isrequired. Wheremoney_base::noneappears in any of theinitial elements of the format pattern, white space is allowed but notrequired.If(str.flags() & str.showbase)isfalse, ...