If
traits::eq_int_type(c, traits::eof())
returns
true,
then the input sequence is backed up one character before the pending sequence is determined.
Failure may occur because the input sequence could not be backed up, or if for some
other reason the pointers cannot be set consistent with the constraints.
pbackfail()
is called only when put back has really failed.
Remarks: The public functions of
basic_streambuf
call this virtual function only when
gptr()
is null,
gptr()== eback(),
or
traits::eq(traits::to_char_type(c), gptr()[-1])
returns
false.