basic_streambuf::pbackfail

virtual int_type pbackfail(int_type c = T::eof());

The protected virtual member function endeavors to put back an element into the input stream, then make it the current element (pointed to by the next pointer). If c compares equal to T::eof(), the element to push back is effectively the one already in the stream before the current element. Otherwise, that element is replaced by T::to_char_type(c). The function can put back an element in various ways:

If the function cannot succeed, it returns T::eof() or throws an exception. Otherwise, it returns some other value. The default behavior is to return T::eof().