Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::basic_streambuf<CharT,Traits>::pbackfail

      From cppreference.com
      <cpp‎ |io‎ |basic streambuf
       
       
       
      std::basic_streambuf
       
      protected:
      virtual int_type pbackfail( int_type c= Traits::eof());

      This function can only be called if any of the following condition is satisfied:

      • gptr() isnull,
      • gptr()== eback(), or
      • traits::eq(traits::to_char_type(c), gptr()[-1]) returnsfalse.

      This function is called by the public functionssungetc() andsputbackc() (which, in turn, are called bybasic_istream::unget andbasic_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 ofpbackfail() 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 ofpbackfail() is to place the characterc into the get area at the position just beforebasic_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 returnsTraits::eof() in all situations. This function is overridden by the derived classes:basic_stringbuf::pbackfail,basic_filebuf::pbackfail,strstreambuf::pbackfail, and is expected to be overridden by user-defined and third-party library stream classes.

      Contents

      [edit]Parameters

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

      [edit]Return value

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

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 32C++98the calling condition 'traits::eq(*gptr(),traits::to_char_type(c))
      returnsfalse' did not match the description ofsputbackc()
      corrected to match
      the description

      [edit]See also

      [virtual]
      backs out the input sequence to unget a character, not affecting the associated file
      (virtual protected member function ofstd::basic_filebuf<CharT,Traits>)[edit]
      [virtual]
      puts a character back into the input sequence
      (virtual protected member function ofstd::basic_stringbuf<CharT,Traits,Allocator>)[edit]
      [virtual]
      backs out the input sequence to unget a character
      (virtual protected member function ofstd::strstreambuf)[edit]
      moves the next pointer in the input sequence back by one
      (public member function)[edit]
      puts one character back in the input sequence
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_streambuf/pbackfail&oldid=141889"

      [8]ページ先頭

      ©2009-2025 Movatter.jp