protected virtual member function
<sstream>

std::basic_stringbuf::pbackfail

int_type pbackfail (int_type c = traits_type::eof());
Put character back
Moves back the get pointer (gptr) one position to point to the previous character and, if the basic_stringbuf object was constructed with ios_base::out, it stores c at that position.

If the basic_stringbuf object was not constructed with ios_base::out, c shall either match the character at the putback position or be the end-of-file value (traits_type::eof()). Otherwise, the function fails. The function uses traits_type::eq for the comparisons, with c converted with traits_type::to_char_type when needed.

If the get pointer is already at the beginning of the character sequence before the call, the function also fails.

On failure, the function returns the end-of-file value (traits_type::eof()) without altering the get pointer (gptr).

This virtual function is called by public member functions of basic_streambuf such as sungetc and sputbackc when there are no putback positions available at the get pointer (gptr), or when the character being put back does not match the one in the buffer.

Parameters

c
Character to be put back, or the end-of-file value (traits_type::eof()) to keep the value of the character at the putback position.
Member type int_type is an integral type able to represent any character value or the special end-of-file value.

Return Value

On success, traits_type::not_eof(c).
The function returns the end-of-file value (traits_type::eof()) on failure.
Member type int_type is an integral type able to represent any character value or the special end-of-file value.

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