59. Ambiguity in specification of gbump

Section: [streambuf.get.area] Status: TC1 Submitter: Matt Austern Opened: 1998-07-28 Last modified: 2016-01-28 10:19:27 UTC

Priority: Not Prioritized

View all issues with TC1 status.

Discussion: says that basic_streambuf::gbump() "Advances the next pointer for the input sequence by n."

The straightforward interpretation is that it is just gptr() += n. An alternative interpretation, though, is that it behaves as if it calls sbumpc n times. (The issue, of course, is whether it might ever call underflow.) There is a similar ambiguity in the case of pbump.

(The "classic" AT&T implementation used the former interpretation.)

Proposed resolution:

Change [streambuf.get.area] paragraph 4 gbump effects from:

Effects: Advances the next pointer for the input sequence by n.


Effects: Adds n to the next pointer for the input sequence.

Make the same change to [streambuf.put.area] paragraph 4 pbump effects.