protected virtual member function


pos_type seekoff (off_type off, ios_base::seekdir way,
                  ios_base::openmode which = ios_base::in | ios_base::out);
Set position pointer to relative position
Sets a new position to the position pointers specified by parameter which. This position is calculated as an offset of off characters relative to a the origin specified by way.

If which includes ios_base::in, the get pointer (gptr) is affected, and if which includes ios_base::out, the put pointer (pptr). Both position pointers can be affected by a single call.

This virtual function is called by the public member basic_streambuf::pubseekoff.


Offset value, relative to the way parameter.
Member type off_type is determined by the character traits: generally, it is an alias of the signed integral type streamoff.
Object of type ios_base::seekdir, indicating the origin from which the offset is applied. It may take any of the following constant values:
valueoffset is relative to...
ios_base::begbeginning of the character sequence
ios_base::curcurrent position of either the get pointer (gptr) or the put pointer (pptr), depending on argument which.
ios_base::endend of the character sequence
Determined which of the position pointers is affected: the input sequence, the output sequence, or both. It is an object of type ios_base::openmode that, for this function, may take any combination of the following significant constant values:
valueposition pointer affected
ios_base::inModifies the get pointer (gptr)
ios_base::outModifies the put pointer (pptr)
Both pointers may be selected simultaneously, but if both are selected when way is ios_base::cur, the function fails.

Return Value

On success, it returns the new absolute position the position pointer points to after the call, if representable as a value of member type pos_type.
On failure, or if the above is not possible, the function returns pos_type(off_type(-1)).
Member type pos_type is determined by the character traits: generally, it is an fpos type (such as streampos) that can be converted to/from integral types.

Data races

Modifies the basic_stringbuf object.
Concurrent access to the same object may cause data races.

Exception safety

Basic guarantee: if an exception is thrown, the object is in a valid state.

See also