453. basic_stringbuf::seekoff need not always fail for an empty stream

Section: 30.8.2.4 [stringbuf.virtuals] Status: CD1 Submitter: Bill Plauger Opened: 2004-01-30 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [stringbuf.virtuals].

View all issues with CD1 status.

Discussion:

  pos_type basic_stringbuf::seekoff(off_type, ios_base::seekdir,
                                    ios_base::openmode);

is obliged to fail if nothing has been inserted into the stream. This is unnecessary and undesirable. It should be permissible to seek to an effective offset of zero.

[ Sydney: Agreed that this is an annoying problem: seeking to zero should be legal. Bill will provide wording. ]

Proposed resolution:

Change the sentence from:

For a sequence to be positioned, if its next pointer (either gptr() or pptr()) is a null pointer, the positioning operation fails.

to:

For a sequence to be positioned, if its next pointer (either gptr() or pptr()) is a null pointer and the new offset newoff is nonzero, the positioning operation fails.