Namespaces
Variants

std::strstreambuf:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = EOF ) ;
(C++98で非推奨)
(C++26で削除)

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

1) 呼び出し元は、get領域が1文字分バックアップされることを要求している(引数なし、または引数として EOF を指定して pbackfail() が呼び出される場合)
a) まず、プットバック位置が存在するかどうかをチェックし、実際に存在しない場合、失敗します( strstreambuf は再読み込み可能な外部文字ソースを持ちません)。
b) 呼び出し元が誤りで、実際にputback位置が利用可能な場合、単に basic_streambuf::gptr() をデクリメントします(例: gbump ( - 1 ) の呼び出しによる)。
2) 呼び出し元が、以前に取得した文字とは異なる文字をプットバックしようとした場合( pbackfail() がプットバックする必要のある文字で呼び出される)、この場合
a) まず、プットバック位置があるかどうかをチェックし、存在しない場合は失敗します。
b) 次に、プットバック位置にある文字を確認します。そこに保持されている文字が既に ( char ) c と等しい場合、単に basic_streambuf::gptr() をデクリメントします。
c) それ以外の場合、バッファが変更不可能な場合(このstrstreambufが文字列リテラルまたは他の const 配列で構築された場合)、失敗します。
d) それ以外の場合、 basic_streambuf::gptr() をデクリメントし、 c を調整後の gptr ( ) が指す位置に書き込む。

目次

パラメータ

c - 戻す文字、または Traits :: eof ( ) を指定してget領域のバックアップを要求することを示す

戻り値

c 成功時は c EOF でない限り、ただし EOF 以外の未規定の値が返される。

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> の公開メンバ関数)