std::strstreambuf
From cppreference.com
| ヘッダ <strstream> で定義 |
||
| class strstreambuf : public std::basic_streambuf<char> |
(C++98で非推奨) (C++26で削除) |
|
std::strstreambuf は、その関連する文字シーケンスが文字配列である std::basic_streambuf です。この文字配列は、定数(例:文字列リテラル)、変更可能だが動的でない(例:スタック割り当て配列)、または動的である場合があります。動的な場合、std::strstreambuf は必要に応じて配列を再割り当てできる場合があります(例:delete[] および new[] またはユーザー提供の関数を呼び出すことによって)。
std::strstreambuf の典型的な実装は、4つのプライベートデータメンバーを保持します。
1) バッファ状態。ビットマスク型で、「割り当て済み」(デストラクタが解放する)、「定数」(出力不可)、「動的」(出力時に再割り当て可能)、「凍結」(解放および再割り当て不可)の4つの値の任意の組み合わせを表すことができます。
2) 割り当て済みバッファサイズ(バッファの先頭には特別なデータメンバーは必要ありません。継承されたポインタ eback() に格納される場合があります)。
3) ユーザー提供の割り当て関数へのポインタ。
4) ユーザー提供の解放関数へのポインタ。
目次 |
[編集] 注記
動的バッファを持つストリームに対する str() の呼び出し後、strstreambuf のデストラクタが必要に応じてバッファを解放できるようにするには、freeze(false) の呼び出しが必要です。
strstreambuf は C++98 で非推奨となり、C++26 で削除されました. 推奨される置換は std::spanbuf です(C++23 以降)。
[編集] メンバ関数
公開メンバ関数 | |
strstreambuf オブジェクトを構築します。(public メンバ関数) | |
| [virtual] |
strstreambuf オブジェクトを破棄します。オプションで文字配列を解放します。(virtual public メンバ関数) |
| バッファの凍結状態を設定/クリアします。 (public メンバ関数) | |
| バッファを凍結し、入力シーケンスの先頭ポインタを返します。 (public メンバ関数) | |
| 出力シーケンスの次のポインタから先頭ポインタを引いた値を返します。つまり、書き込まれた文字数です。 (public メンバ関数) | |
Protected member functions | |
| [virtual] |
入力シーケンスから文字を読み取りますが、次のポインタは進めません。 (virtual protected メンバ関数) |
| [virtual] |
入力シーケンスを後退させて、文字をアンゲットします。 (virtual protected メンバ関数) |
| [virtual] |
出力シーケンスに文字を追加します。動的で凍結されていない場合は、バッファを再割り当てまたは最初に割り当てることができます。 (virtual protected メンバ関数) |
| [virtual] |
制御文字シーケンスを配列で置き換えようとする (virtual protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、相対アドレス指定を使用して次のポインタを再配置する (virtual protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、絶対アドレス指定を使用して次のポインタを再配置する (virtual protected メンバ関数) |
std::basic_streambuf から継承
メンバ型
| メンバ型 | 定義 |
char_type
|
CharT |
traits_type
|
Traits; Traits::char_type が CharT でない場合、プログラムは不適格となる。 |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
メンバ関数
| [virtual] |
basic_streambuf オブジェクトを破棄する( std::basic_streambuf<CharT,Traits> の仮想 public メンバ関数) |
ロケール | |
| 関連するロケールを変更し、imbue() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| 関連するロケールのコピーを取得する ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
位置付け | |
| setbuf() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| seekoff() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| seekpos() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| sync() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
取得領域 | |
| 取得領域ですぐに利用可能な文字数を取得する ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| 入力シーケンスを進め、その後、再度進めずに1文字を読み取る ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| (C++17 で削除) |
入力シーケンスから1文字を読み込み、シーケンスを進める ( std::basic_streambuf<CharT,Traits> の public メンバ関数) |
| シーケンスを進めずに、入力シーケンスから1文字を読み取る ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| xsgetn() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
配置領域 | |
| 配置領域に1文字を書き込み、次のポインタを進める ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| xsputn() を呼び出す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
戻し | |
| 1文字を入力シーケンスに戻す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
| 入力シーケンスの次のポインタを1つ戻す ( std::basic_streambuf<CharT,Traits> の public メンバ関数) | |
Protected member functions
basic_streambuf オブジェクトを構築する(protected メンバ関数) | |
| (C++11) |
basic_streambuf オブジェクトを置き換える(protected メンバ関数) |
| (C++11) |
2つの basic_streambuf オブジェクトをスワップする(protected メンバ関数) |
ロケール | |
| [virtual] |
関連するロケールの変更に対応する ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
位置付け | |
| [virtual] |
許可されていれば、バッファをユーザー定義配列で置き換える ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、相対アドレス指定を使用して次のポインタを再配置する ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、絶対アドレス指定を使用して次のポインタを再配置する ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
バッファを関連付けられた文字シーケンスと同期する ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
取得領域 | |
| [virtual] |
分かっていれば、関連付けられた入力シーケンスで入力に利用可能な文字数を取得する ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
関連付けられた入力シーケンスから取得領域に文字を読み込む ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
関連付けられた入力シーケンスから取得領域に文字を読み込み、次のポインタを進める ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
入力シーケンスから複数の文字を読み込む ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| 取得領域の先頭、現在の文字、および末尾へのポインタを返す (protected メンバ関数) | |
| 入力シーケンスの次のポインタを進める (protected メンバ関数) | |
| 入力シーケンスの先頭、次、および末尾のポインタを再配置する (protected メンバ関数) | |
配置領域 | |
| [virtual] |
出力シーケンスに複数の文字を書き込む ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| [virtual] |
関連付けられた出力シーケンスに、配置領域から文字を書き込む ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |
| 配置領域の先頭、現在の文字、および末尾へのポインタを返す (protected メンバ関数) | |
| 出力シーケンスの次のポインタを進める (protected メンバ関数) | |
| 出力シーケンスの先頭、次、および末尾のポインタを再配置する (protected メンバ関数) | |
戻し | |
| [virtual] |
入力シーケンスに1文字を戻す (入力シーケンスを変更する可能性あり) ( std::basic_streambuf<CharT,Traits> の仮想 protected メンバ関数) |