172. Inconsistent types for basic_istream::ignore()

Section: 31.7.5.4 [istream.unformatted] Status: TC1 Submitter: Greg Comeau, Dietmar Kühl Opened: 1999-07-23 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [istream.unformatted].

View all issues with TC1 status.

Discussion:

In 31.7.5.2 [istream] the function ignore() gets an object of type streamsize as first argument. However, in 31.7.5.4 [istream.unformatted] paragraph 23 the first argument is of type int.

As far as I can see this is not really a contradiction because everything is consistent if streamsize is typedef to be int. However, this is almost certainly not what was intended. The same thing happened to basic_filebuf::setbuf(), as described in issue 173.

Darin Adler also submitted this issue, commenting: Either 27.6.1.1 should be modified to show a first parameter of type int, or 27.6.1.3 should be modified to show a first parameter of type streamsize and use numeric_limits<streamsize>::max.

Proposed resolution:

In 31.7.5.4 [istream.unformatted] paragraph 23 and 24, change both uses of int in the description of ignore() to streamsize.