Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...f::pbackfail(3) C++ Standard Libarystd::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
       character
	  (pbackfail() is called with no arguments), in	which case, this func-
       tion re-reads the
	  file	 starting   one	 byte  earlier	and  decrements	 basic_stream-
       buf::gptr(), e.g. by
	  calling gbump(-1).
	  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
	  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
       character 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-
       memory 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
	  pbackfail  puts  a  character	back into the input sequence, possibly
       modifying the
	  [virtual] input sequence
		    (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_stream-
       buf<CharT,Traits>)
	  sputbackc puts one character back in the input sequence
		    (public    member	 function    of	    std::basic_stream-
       buf<CharT,Traits>)
	  unget	    unextracts a character
		    (public	  member       function	      of      std::ba-
       sic_istream<CharT,Traits>)
	  putback   puts character into	input stream
		    (public	 member	      function	     of	      std::ba-
       sic_istream<CharT,Traits>)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wfilebuf::pbackfail&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help