< cpp‎ | io‎ | basic streambuf
Revision as of 11:24, 9 December 2012 by Cubbi (Talk | contribs)


Template:ddcl list begin <tr class="t-dcl ">

<td class="t-dcl-nopad">
virtual int_type pbackfail(int_type c = Traits::eof());

<td class="t-dcl-nopad"> </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end

This protected virtual function is called by the public functions Template:rlpf and Template:rlpf (which, in turn, are called by basic_istream::unget and basic_istream::putback) when either

1) There is no putback position in the get area (pbackfail() is called with no arguments). In this situation, the purpose of pbackfail() is to back up the get area by one character, if the associated character sequence allows this (e.g. a file-backed streambuf may reload the buffer from a file, starting one character earlier).
2) The caller attempts to putback a different character from the one retrieved earlier (pbackfail() is called with the character that needs to be put back). In this situation, the purpose of pbackfail() is to place the character c into the get area at the position just before basic_streambuf::gptr(), and, if possible, to modify the associated character sequence to reflect this change. This may involve backing up the get area as in the first variant.

The default base class version of this function does nothing and returns Traits::eof() in all situations. This function is overloaded by the derived classes: basic_stringbuf::pbackfail, basic_filebuf::pbackfail, strstreambuf::pbackfail, and is expected to be overloaded by user-defined and third-party library stream classes.



ch - character to put back or Traits::eof() if only back out is requested

Return value

Traits::eof() in case of failure, some other value to indicate success. The base class version always fails.


See also

Template:cpp/io/basic filebuf/dcl list pbackfailTemplate:cpp/io/basic stringbuf/dcl list pbackfailTemplate:cpp/io/strstreambuf/dcl list pbackfailTemplate:cpp/io/basic streambuf/dcl list sungetcTemplate:cpp/io/basic streambuf/dcl list sputbackc