std::basic_streambuf<CharT,Traits>::pbackfail - cppreference.com
提供: cppreference.com
<tbody> </tbody>
|
|
||
この protected virtual 関数は public 関数 sungetc() および sputbackc() (さらに元を辿ると basic_istream::unget および basic_istream::putback) から以下のときに呼ばれます。
1) get 領域に putback 位置がない (pbackfail() は引数なしで呼ばれます)。 この状況では、 pbackfail() の目的は、紐付けられている文字シーケンスでそれが可能であれば、 get 領域を1文字後退させることです (例えば、ファイルを背後に持つ streambuf は1文字前の位置にシークしてファイルからバッファを再読み込みできます)。
2) 呼び出し元が以前に取得した文字と異なる文字の putback を試みている (pbackfail() は putback される必要のある文字を指定して呼ばれます)。 この状況では、 pbackfail() の目的は、
の直前の位置に文字 c を置くことと、可能であれば、この変更を反映するために紐付けられている文字シーケンスを変更することです。 これは1つめの変種と同様に get 領域の後退を必要とするかもしれません。
この関数のデフォルトの基底クラスのバージョンは、何もせず、すべての状況に対して Traits::eof() を返します。 この関数は派生クラスでオーバーライドされており (basic_stringbuf::pbackfail, basic_filebuf::pbackfail, strstreambuf::pbackfail)、ユーザ定義の、およびサードパーティライブラリのストリームクラスでオーバーライドされることが期待されます。
引数
| ch | - | 戻す文字、または後退のみを要求する場合は Traits::eof()
|
戻り値
失敗した場合は Traits::eof()。 成功した場合はそれ以外の何らかの値。 基底クラスのバージョンは常に失敗します。
例
関連項目
| 文字を unget するために入力シーケンスを後退させます。 紐付けられているファイルには影響を与えません ( std::basic_filebuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
| |
| 文字を入力シーケンスに戻します ( std::basic_stringbuf<CharT,Traits,Allocator>の仮想プロテクテッドメンバ関数) [edit]
| |
| 文字を戻すために入力シーケンスを後退させます ( std::strstreambufの仮想プロテクテッドメンバ関数) [edit]
| |
| 入力シーケンスの次ポインタを1つ前に移動させます (パブリックメンバ関数) [edit] | |
| 入力シーケンスに文字をひとつ戻します (パブリックメンバ関数) [edit] |