Section: 25.4 [locale.categories] Status: NAD Submitter: Martin Sebor, Paolo Carlini Opened: 2006-06-22 Last modified: 2016-02-10
Priority: Not Prioritized
View all other issues in [locale.categories].
View all issues with NAD status.
Section 22.2, paragraph 2 requires facet
that take an
err, to ignore the (initial) value of the
argument, but to set it to
ios_base::failbit in case of a
We believe there are a few minor problems with this blanket
requirement in conjunction with the wording specific to each
get() member function.
get() there are other member functions
with a slightly different name (for example,
get_date()). It's not completely clear that the intent of
the paragraph is to include those as well, and at least one
implementation has interpreted the requirement literally.
Second, the requirement to "set the argument to
ios_base::failbit suggests that the functions are not
permitted to set it to any other value (such as
ios_base::eofbit, or even
However, 184.108.40.206.2, p5 (Stage 3 of
num_get parsing) and
bool parsing) specifies that the
err |= ios_base::eofbit, which
contradicts the earlier requirement to ignore err's initial
220.127.116.11.2, p1 (the Effects clause of the
do_get member functions) also specifies that
err's initial value be used to compute the final
value by ORing it with either
ios_base::eofbit | ios_base::failbit.
[ 2009-07 Frankfurt ]
Move to NAD.
We believe the intent is for all facet member functions that take an
ios_base::iostate& argument to:
ios_base::goodbitprior to any further processing,
ios_base::failbit, or both in
err, as appropriate, in response to reaching the end-of-file or on parse error, or both.
To that effect we propose to change 22.2, p2 as follows:
() members make no provision for error
reporting. (Any failures of the OutputIterator argument must be
extracted from the returned iterator.) the get () members
they ignore, but set to ios_base::failbit in case of a parse
[ Kona (2007): We need to change the proposed wording to clarify that the phrase "the get members" actually denotes get(), get_date(), etc. Proposed Disposition: Open ]