次の方法で共有


basic_streambuf クラス

ストリームの特定の表現との間で要素の送信を制御するストリーム バッファーを派生するための抽象基本クラスについて説明します。

template<class Elem, class Tr = char_traits<Elem> >
   class basic_streambuf;

パラメーター

解説

このテンプレート クラスは、ストリームの特定の表現との間で要素の送信を制御するストリーム バッファーを派生するための抽象基本クラスについて説明します。 クラスの basic_streambuf のオブジェクトは型の特性がクラス char_traitsで決められたエイリアス たとえば、型 Tr要素を含むストリームを (traits_type制御します。

ストリームのバッファーで概念的には 2 種類の独立したストリームを制御する: 抽出 (入力) の 1 および挿入 (出力) の場合は 1。 ただし、特定の表現はストリーム アクセスのいずれか、または両方を行う場合があります。 これは通常、2 個のストリームの関係を維持します。 たとえば basic_stringbuf<Elemの Tr> オブジェクトの出力ストリームに挿入する内容を入力ストリームから新しい抽出数です。 basic_filebuf<Elemの Trオブジェクトの 1 つがストリームを配置すると、> 他のストリームを連携して配置します。

テンプレート クラス basic_streambuf へのパブリック インターフェイスは、すべてのストリーム バッファーに共通のない特化した操作を提示します。 保護されたなインターフェイスは、作業を行うためにストリームの特定の表示のために必要な操作を提供します。 プロテクト仮想メンバー関数関数は、ストリームの特定の表現の派生のストリーム バッファーの動作をすることができます。 このライブラリの各派生のストリーム バッファーはプロテクト仮想メンバー関数関数の動作をどのように特化した方法について説明します。 頻繁に何もせずに基本クラスの既定の動作では、このトピックで説明します。

残りのプロテクト メンバー関数でストリームへの送信してバッファーに指定されたストレージとの間でコピーを制御します。 入力バッファーは、以下で識別されます:

  • ebackのバッファーの先頭へのポインター。

  • gptrの読み取る次の要素へのポインター。

  • egptrのバッファーの末尾を超えるポインターだけです。

同様に、出力バッファーは、で識別されます:

  • pbaseのバッファーの先頭へのポインター。

  • pptrの作成対象の次の要素へのポインター。

  • epptrのバッファーの末尾を超えるポインターだけです。

任意のバッファーに対して、次のプロトコルが使用されています:

  • 通常ポインタが NULL の場合、バッファーはありません。 それ以外の場合は、すべてのスリーポイントの三つのポインターを同じ順序で示します。 これらは順序に安全に比較できます。

  • 出力バッファーについて、正常ポインタが最後のポインター未満を比較する場合、通常ポインタで指定された書位置の要素を格納できます。

  • 入力バッファーについて、正常ポインタが最後のポインター未満を比較する場合、通常ポインタで指定された入力位置の要素を読み取ることができます。

  • 入力バッファーの場合、最初のポインターが正方向ポインタ未満を比較する場合、デクリメントされた通常ポインタで指定された putback の位置の要素を返すことができます。

ユーザーが basic_streambuf<Elem、Tr> から派生したクラスに作成するプロテクト仮想メンバー関数関数がこのプロトコルを保持共同で作業する必要があります。

クラス basic_streambuf<Elem、Tr> オブジェクトは、前に説明した 6 個のポインターを格納します。 また、派生のストリーム バッファーによって潜在的な使用の型 ロケール オブジェクトにロケール オブジェクトを格納します。

コンストラクター

basic_streambuf

basic_streambuf 型のオブジェクトを構築します。

Typedef

たとえば

Elem テンプレート パラメーターに型名を関連付けます。

int_type

Elem のテンプレート パラメーターと basic_streambuf のスコープ内の型名を関連付けます。

off_type

Elem のテンプレート パラメーターと basic_streambuf のスコープ内の型名を関連付けます。

pos_type

Elem のテンプレート パラメーターと basic_streambuf のスコープ内の型名を関連付けます。

traits_type

Tr テンプレート パラメーターに型名を関連付けます。

メンバー関数

eback

入力バッファーの先頭へのポインターを返す保護されたな関数。

egptr

入力バッファーの末尾を超えるポインターだけを返す保護されたな関数。

epptr

出力バッファーの末尾を超えるポインターだけを返す保護されたな関数。

gbump

入力バッファーの正常ポインタに _Count を追加する保護されたな関数。

getloc

basic_streambuf オブジェクトのロケールを取得します。

gptr

入力バッファー内の次の要素へのポインターを返す保護されたな関数。

染めて。

保護されたの pubimbueで呼び出される仮想関数です。

in_avail

バッファーから読み取られる準備ができている要素の数を返します。

オーバーフロー

新しい文字が完全なバッファーに挿入されたときに呼び出すことができる保護されたな仮想関数です。

pbackfail

入力ストリームに要素を返す必要がありますプロテクト仮想メンバー関数関数とは、現在の要素を (通常ポインタが指す)。

pbase

出力バッファーの先頭へのポインターを返す保護されたな関数。

pbump

出力バッファーの正常ポインタに count を追加する保護されたな関数。

pptr

出力バッファー内の次の要素へのポインターを返す保護されたな関数。

pubimbue

basic_streambuf オブジェクトのロケールを設定します。

pubseekoff

seekoffの派生クラスでオーバーライドされた保護されたな仮想関数を呼び出します。

pubseekpos

seekposの派生クラスでオーバーライドされた呼び出し、現在のポインターの位置をリセットします保護されたな仮想関数を示します。

pubsetbuf

setbufの派生クラスでオーバーライドされた保護されたな仮想関数を呼び出します。

pubsync

同期の派生クラスでオーバーライドされた呼び出し、このバッファーに関連付けられている外部ストリームを更新します保護されたな仮想関数を示します。

sbumpc

ストリーム ポインターを移動すると、現在の要素を返します。

seekoff

プロテクト仮想メンバー関数関数はステートメント ストリームの現在位置を変更します。

seekpos

プロテクト仮想メンバー関数関数はステートメント ストリームの現在位置を変更します。

setbuf

プロテクト仮想メンバー関数関数は、各派生のストリーム バッファーに操作の両方を実行します。

setg

先頭ポインターで _Gbeg、正常ポインタの _Gnext、入力バッファーの末尾のポインターの _Gend を格納する保護されたな関数。

setp

先頭ポインターで _Pbeg と出力バッファーの末尾ポインターで _Pend を格納する保護されたな関数。

sgetc

ストリームの変更なしで現在位置の要素を返します。

sgetn

読み取り要素数を返します。

showmanyc

入力ストリームから取得され、プログラムは無期限に待機が適用されないようにする文字数を返すプロテクト仮想メンバー関数関数。

snextc

現在の要素を読み、次の要素を返します。

sputbackc

ストリームに char_type を配置します。

sputc

ストリームに文字を取得します。

sputn

ストリームに文字列を送信します。

stossc

ストリームの現在の要素まで移動します。

sungetc

ストリームから文字を取得します。

swap

basic_streambuf オブジェクトに指定されたパラメーターの値としてこのオブジェクトの値を交換します。

同期

、関連する外部ストリームとステートメント ストリームを同期しようと保護されたな仮想関数です。

uflow

保護されたな仮想関数を入力ストリームから抽出現在の要素。

アンダーフロー

保護されたな仮想関数を入力ストリームから抽出現在の要素。

xsgetn

保護されたな仮想関数を入力ストリームから抽出要素。

xsputn

出力ストリームに要素を挿入する保護されたな仮想関数です。

演算子

operator=

basic_streambuf の別のオブジェクトのオブジェクトの値を割り当てます。

必要条件

ヘッダー: の <streambuf>

名前空間: std

参照

関連項目

C++ 標準ライブラリ内のスレッド セーフ

iostream プログラミング

iostreams の規則

その他の技術情報

basic_streambuf のメンバー

<streambuf> メンバー