Content-Length: 5939 | pFad | https://cplusplus.github.io/LWG/issue211

Issue 211: operator>>(istream&, string&) doesn't set failbit

This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of TC1 status.

211. operator>>(istream&, string&) doesn't set failbit

Section: 27.4.4.4 [string.io] Status: TC1 Submitter: Scott Snyder Opened: 2000-02-04 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [string.io].

View all issues with TC1 status.

Discussion:

The description of the stream extraction operator for std::string (section 21.3.7.9 [lib.string.io]) does not contain a requirement that failbit be set in the case that the operator fails to extract any characters from the input stream.

This implies that the typical construction

std::istream is;
std::string str;
...
while (is >> str) ... ;

(which tests failbit) is not required to terminate at EOF.

Furthermore, this is inconsistent with other extraction operators, which do include this requirement. (See sections 31.7.5.3 [istream.formatted] and 31.7.5.4 [istream.unformatted]), where this requirement is present, either explicitly or implicitly, for the extraction operators. It is also present explicitly in the description of getline (istream&, string&, charT) in section 27.4.4.4 [string.io] paragraph 8.)

Proposed resolution:

Insert new paragraph after paragraph 2 in section 27.4.4.4 [string.io]:

If the function extracts no characters, it calls is.setstate(ios::failbit) which may throw ios_base::failure (27.4.4.3).









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://cplusplus.github.io/LWG/issue211

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy