名前空間
変種
操作

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

提供: cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
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()。 成功した場合はそれ以外の何らかの値。 基底クラスのバージョンは常に失敗します。

[編集]

[編集] 関連項目

[仮想]
文字を unget するために入力シーケンスを後退させます。 紐付けられているファイルには影響を与えません
(std::basic_filebuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
文字を入力シーケンスに戻します
(std::basic_stringbuf<CharT,Traits,Allocator>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
文字を戻すために入力シーケンスを後退させます
(std::strstreambufの仮想プロテクテッドメンバ関数) [edit]
入力シーケンスの次ポインタを1つ前に移動させます
(パブリックメンバ関数) [edit]
入力シーケンスに文字をひとつ戻します
(パブリックメンバ関数) [edit]