413. Proposed resolution to LDR#64 still wrong

Section: 30.7.4.2.3 [istream.extractors] Status: CD1 Submitter: Bo Persson Opened: 2003-07-13 Last modified: 2017-04-24

Priority: Not Prioritized

View all other issues in [istream.extractors].

View all issues with CD1 status.

Discussion:

The second sentence of the proposed resolution says:

"If it inserted no characters because it caught an exception thrown while extracting characters from sb and ..."

However, we are not extracting from sb, but extracting from the basic_istream (*this) and inserting into sb. I can't really tell if "extracting" or "sb" is a typo.

[ Sydney: Definitely a real issue. We are, indeed, extracting characters from an istream and not from sb. The problem was there in the FDIS and wasn't fixed by issue 64. Probably what was intended was to have *this instead of sb. We're talking about the exception flag state of a basic_istream object, and there's only one basic_istream object in this discussion, so that would be a consistent interpretation. (But we need to be careful: the exception policy of this member function must be consistent with that of other extractors.) PJP will provide wording. ]

Proposed resolution:

Change the sentence from:

If it inserted no characters because it caught an exception thrown while extracting characters from sb and failbit is on in exceptions(), then the caught exception is rethrown.

to:

If it inserted no characters because it caught an exception thrown while extracting characters from *this and failbit is on in exceptions(), then the caught exception is rethrown.