std::basic_streambuf<CharT,Traits>::pbackfail
提供: cppreference.com
< cpp | io | basic streambuf
protected: virtual int_type pbackfail( int_type c = Traits::eof() ); |
||
この 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()
の目的は、 basic_streambuf::gptr() の直前の位置に文字 c
を置くことと、可能であれば、この変更を反映するために紐付けられている文字シーケンスを変更することです。 これは1つめの変種と同様に get 領域の後退を必要とするかもしれません。この関数のデフォルトの基底クラスのバージョンは、何もせず、すべての状況に対して Traits::eof() を返します。 この関数は派生クラスでオーバーライドされており (basic_stringbuf::pbackfail, basic_filebuf::pbackfail, strstreambuf::pbackfail)、ユーザ定義の、およびサードパーティライブラリのストリームクラスでオーバーライドされることが期待されます。
目次 |
[編集] 引数
ch | - | 戻す文字、または後退のみを要求する場合は Traits::eof() |
[編集] 戻り値
失敗した場合は Traits::eof()。 成功した場合はそれ以外の何らかの値。 基底クラスのバージョンは常に失敗します。
[編集] 例
This section is incomplete Reason: no example |
[編集] 関連項目
[仮想] |
文字を unget するために入力シーケンスを後退させます。 紐付けられているファイルには影響を与えません ( std::basic_filebuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
文字を入力シーケンスに戻します ( std::basic_stringbuf<CharT,Traits,Allocator> の仮想プロテクテッドメンバ関数)
|
[仮想] |
文字を戻すために入力シーケンスを後退させます ( std::strstreambuf の仮想プロテクテッドメンバ関数)
|
入力シーケンスの次ポインタを1つ前に移動させます (パブリックメンバ関数) | |
入力シーケンスに文字をひとつ戻します (パブリックメンバ関数) |