Section: 31 [input.output] Status: TC1 Submitter: Matt Austern Opened: 1998-06-26 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [input.output].
View all issues with TC1 status.
Discussion:
Several member functions in clause 27 are defined in certain circumstances to return an "invalid stream position", a term that is defined nowhere in the standard. Two places (27.5.2.4.2, paragraph 4, and 27.8.1.4, paragraph 15) contain a cross-reference to a definition in _lib.iostreams.definitions_, a nonexistent section.
I suspect that the invalid stream position is just supposed to be pos_type(-1). Probably best to say explicitly in (for example) 27.5.2.4.2 that the return value is pos_type(-1), rather than to use the term "invalid stream position", define that term somewhere, and then put in a cross-reference.
The phrase "invalid stream position" appears ten times in the C++ Standard. In seven places it refers to a return value, and it should be changed. In three places it refers to an argument, and it should not be changed. Here are the three places where "invalid stream position" should not be changed:
31.8.2.5 [stringbuf.virtuals], paragraph 14
31.10.3.5 [filebuf.virtuals], paragraph 14
99 [depr.strstreambuf.virtuals], paragraph 17
Proposed resolution:
In 31.6.3.5.2 [streambuf.virt.buffer], paragraph 4, change "Returns an
object of class pos_type that stores an invalid stream position
(_lib.iostreams.definitions_)" to "Returns
pos_type(off_type(-1))
".
In 31.6.3.5.2 [streambuf.virt.buffer], paragraph 6, change "Returns
an object of class pos_type that stores an invalid stream
position" to "Returns pos_type(off_type(-1))
".
In 31.8.2.5 [stringbuf.virtuals], paragraph 13, change "the object
stores an invalid stream position" to "the return value is
pos_type(off_type(-1))
".
In 31.10.3.5 [filebuf.virtuals], paragraph 13, change "returns an
invalid stream position (27.4.3)" to "returns
pos_type(off_type(-1))
"
In 31.10.3.5 [filebuf.virtuals], paragraph 15, change "Otherwise
returns an invalid stream position (_lib.iostreams.definitions_)"
to "Otherwise returns pos_type(off_type(-1))
"
In 99 [depr.strstreambuf.virtuals], paragraph 15, change "the object
stores an invalid stream position" to "the return value is
pos_type(off_type(-1))
"
In 99 [depr.strstreambuf.virtuals], paragraph 18, change "the object
stores an invalid stream position" to "the return value is
pos_type(off_type(-1))
"