Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) )

この保護仮想関数は、公開関数 basic_streambuf::sungetc および basic_streambuf::sputbackc によって呼び出されます(これらは、さらに basic_istream::unget および basic_istream::putback によって呼び出されます)。

1) 呼び出し元は、get領域が1文字分バックアップされることを要求している(引数なし、または pbackfail() Traits :: eof ( ) を引数として呼び出される)
a) まず、プットバック位置が存在するかどうかをチェックし、実際に存在しない場合は失敗します。(stringbufには再読み込み可能な外部文字ソースがありません)
b) 呼び出し元が誤りで、実際にプットバック位置が利用可能な場合、単に basic_streambuf::gptr() をデクリメントします(例: gbump ( - 1 ) の呼び出しによる)。
2) 呼び出し元が以前に取得した文字とは異なる文字をプットバックしようとした場合( pbackfail() がプットバックする必要のある文字で呼び出される)、この場合
a) まず、プットバック位置があるかどうかをチェックし、存在しない場合は失敗します。
b) 次に、プットバック位置にある文字をチェックします。そこに保持されている文字が既に c と等しい場合( Traits :: eq ( to_char_type ( c ) , gptr ( ) [ - 1 ] ) によって判定される)、単に basic_streambuf::gptr() をデクリメントします。
c) それ以外の場合、バッファが読み取り専用で開かれている場合、失敗します。
d) それ以外の場合、バッファが書き込み用に開かれている場合( mode && std:: ios_base :: out が非ゼロ)、 basic_streambuf::gptr() をデクリメントし、調整後のgptr()が指す位置に c を書き込む。

目次

パラメータ

c - 格納する文字、またはgetエリアのバックアップを要求することを示すTraits::eof()

戻り値

c 成功時は、ただし c Traits :: eof ( ) であった場合を除き、その場合 Traits :: not_eof ( c ) が返されます。

Traits :: eof ( ) 失敗時に返される値。

関連項目

[virtual]
入力シーケンスに文字を戻し、入力シーケンスを変更する可能性がある
( std::basic_streambuf<CharT,Traits> の仮想保護メンバ関数)
入力シーケンスの次のポインタを1つ戻す
( std::basic_streambuf<CharT,Traits> の公開メンバ関数)
入力シーケンスに1文字を戻す
( std::basic_streambuf<CharT,Traits> の公開メンバ関数)
文字を取り消す
( std::basic_istream<CharT,Traits> の公開メンバ関数)
入力ストリームに文字を戻す
( std::basic_istream<CharT,Traits> の公開メンバ関数)