basic_streambuf::overflow
新しい文字が完全なバッファーに挿入されたときに呼び出すことができるプロテクト仮想関数。
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
パラメーター
- _Meta
バッファーに挿入される文字または traits_type::eof。
戻り値
関数が正常終了できない場合 traits_type::eof を返すか、例外をスローします。それ以外の場合は traits_type::not_eof(_Meta) を返します。既定の動作では、traits_type::eofを返します。
解説
_Meta が traits_type::eofに等しいを比較する、プロテクト仮想メンバー関数は出力ストリームに要素 traits_type::to_char_type (_Meta) を挿入するためにコミットします。これはさまざまな方法で行うことがあります:
write position が使用できる場合、書き込みの位置に要素を格納し、出力バッファーの正方向ポインターをインクリメントできます。
これは出力バッファーの新規または追加のディスク ストレージを割り当てることによって書き込みの位置を使用できるようにすることができます。
これは、外部先、出力バッファーの先頭と正方向ポインターでの要素の一部またはすべてに、書き出すことによって書き込みの位置を使用できるようにすることができます。
仮想のオーバーフローの関数は、同期します。 と アンダーフロー の関数とともに、streambuf 派生クラスの特性を定義します。各派生クラスではオーバーフローを異なる方法で実装できますが、ストリーム クラスでインターフェイスは同じです。
overflow 関数は sputc と sputn などの streambuf のパブリック関数によって最も頻繁に設定された領域が、他のクラスは、ストリーム クラス、overflow をいつでも呼び出すときに呼び出されます。
関数は pptr のポインター pbase と間の一つの領域の文字を実行し、次に設定された領域を再初期化します。overflow 関数は、( nCh が EOFでない場合 nCh を実装する必要があります。または、新しい設定領域にその文字を設定するには、次の呼び出しで実行するように選択する場合があります。
定義はの派生クラスとでは異なります実装します。たとえば、filebuf のクラスは、ファイルに strstreambuf のクラスは、バッファーに保存 (バッファーが動的として呼び出しに対してオーバーフローする場合) を配置するバッファーに文字を作成します。この拡張は、古いバッファーを解放することや 1 以上に置き換えることによって行われます。ポインターは必要に応じて調整されます。
必要条件
ヘッダー: <streambuf>
名前空間: std