home | help
std::basic_...f::pbackfail(3)  C++ Standard Libary std::basic_...f::pbackfail(3)

NAME
     std::basic_filebuf::pbackfail - std::basic_filebuf::pbackfail

Synopsis
	protected:
	virtual int_type pbackfail( int_type c = Traits::eof() )

	This protected virtual function is called by the public functions
	basic_streambuf::sungetc and basic_streambuf::sputbackc (which, in turn,
     are called
	by basic_istream::unget and basic_istream::putback).

	1)  The caller is requesting that the get area is backed up by one char-
     acter
	(pbackfail() is called with no arguments), in which case, this	function
     re-reads the
	file  starting	one byte earlier and decrements basic_streambuf::gptr(),
     e.g. by
	calling gbump(-1).
	2) The caller attempts to putback a different character from the one re-
     trieved
	earlier (pbackfail() is called with the character that needs to  be  put
     back), in
	which case
	a)  First,  checks  if	there is a putback position, and if there isn't,
     backs up the
	get area by re-reading the file starting one byte earlier.
	a) Then checks what character is in the putback position. If the charac-
     ter held
	there	 is    already	  equal    to	 c,	as     determined     by
     Traits::eq(to_char_type(c),
	gptr()[-1]), then simply decrements basic_streambuf::gptr().
	b)  Otherwise,	if  the  buffer  is  allowed to modify its own get area,
     decrements
	basic_streambuf::gptr() and writes c to the location pointed  to  gptr()
     after
	adjustment.

	This  function never modifies the file, only the get area of the in-mem-
     ory buffer.

	If the	file  is  not  open  (is_open()==false,  this  function  returns
     Traits::eof()
	immediately.

Parameters
	c - the character to put back, or Traits::eof() to indicate that backing
     up of the
	    get area is requested

Return value
	c   on	 success   except   if	 c  was  Traits::eof(),  in  which  case
     Traits::not_eof(c) is
	returned.

	Traits::eof() on failure.

Example
	 This section is incomplete
	 Reason: no example

See also
		  puts a character back into the input sequence, possibly  modi-
     fying the
	pbackfail input sequence
	[virtual]  (virtual  protected	member	function  of  std::basic_stream-
     buf<CharT,Traits>)

	sungetc   moves the next pointer in the input sequence back by one
		  (public member function of std::basic_streambuf<CharT,Traits>)
	sputbackc puts one character back in the input sequence
		  (public member function of std::basic_streambuf<CharT,Traits>)
	unget	  unextracts a character
		  (public member function of std::basic_istream<CharT,Traits>)
	putback   puts a character into input stream
		  (public member function of std::basic_istream<CharT,Traits>)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::basic_...f::pbackfail(3)

home | help