std::strstreambuf
提供: cppreference.com
ヘッダ <strstream> で定義
|
||
class strstreambuf : public std::basic_streambuf<char> |
(C++98で非推奨) | |
std::strstreambuf
は紐付けられている文字シーケンスが文字配列である std::basic_streambuf です。 文字シーケンスは定数 (例えば文字列リテラル)、変更可能だけれども動的でない (例えばスタックに確保された配列)、または動的である場合もあります。 動的な場合、 std::strstreambuf
は出力に適合するように必要に応じて配列を (例えば delete[] および new[] またはユーザ提供の関数を呼ぶことによって) 再確保することができることがあります。
std::strstreambuf
の一般的な実装は以下の4つのプライベートデータメンバを保持します。
1) バッファの状態。 4つの値「確保された」(デストラクタが解放する)、「定数」(出力できない)、「動的」(出力が再確保することがある)、「凍結された」(解放および再確保できない) の任意の組み合わせを表すことができるビットマスク。
2) 確保されたバッファのサイズ (バッファの先頭は特別なデータメンバを必要とせず、継承したポインタ eback() に格納されるかもしれません)。
3) ユーザ提供の確保関数へのポインタ。
4) ユーザ提供の解放関数へのポインタ。
目次 |
[編集] ノート
動的なバッファを持つストリームに対する str()
の呼び出し後の freeze(false)
の呼び出しは、strstreambuf
のデストラクタが必要な時にバッファを解放できるようにすることが要求されます。
[編集] メンバ関数
パブリックメンバ関数 | |
strstreambuf オブジェクトを構築します (パブリックメンバ関数) | |
[仮想] |
strstreambuf オブジェクトを破棄し、オプションで文字配列を解放します (仮想パブリックメンバ関数) |
バッファの凍結状態をセットまたはクリアします (パブリックメンバ関数) | |
バッファを凍結させ、入力シーケンスの先頭ポインタを返します (パブリックメンバ関数) | |
次ポインタ���ら出力シーケンスの先頭ポインタを減算した値、すなわち書き込んだ文字数を返します (パブリックメンバ関数) | |
プロテクテッドメンバ関数 | |
[仮想] |
次ポインタを進めずに入力シーケンスから文字を読み込みます (仮想プロテクテッドメンバ関数) |
[仮想] |
文字を戻すために入力シーケンスを後退させます (仮想プロテクテッドメンバ関数) |
[仮想] |
出力シーケンスに文字を追加します。 動的な場合、または凍結されていない場合、バッファを再確保または初期確保することがあります (仮想プロテクテッドメンバ関数) |
[仮想] |
制御された文字シーケンスの配列での置き換えを試みます (仮想プロテクテッドメンバ関数) |
[仮想] |
相対位置を使用して入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を再設定します (仮想プロテクテッドメンバ関数) |
[仮想] |
入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を絶対位置を用いて再設定します (仮想プロテクテッドメンバ関数) |
std::basic_streambuf から継承
メンバ型
メンバ型 | 定義 |
char_type
|
CharT |
traits_type
|
Traits。 Traits::char_type が CharT でない場合、プログラムは ill-formed です
|
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
メンバ関数
[仮想] |
basic_streambuf オブジェクトを破棄します ( std::basic_streambuf<CharT,Traits> の仮想パブリックメンバ関数)
|
ロケール | |
imbue() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
紐付けられているロケールのコピーを取得します ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
位置設定 | |
setbuf() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
seekoff() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
seekpos() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
sync() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
get 領域 | |
get 領域内の直ちに利用可能な文字数を取得します ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
入力シーケンスを進めて、その後、進めずに文字をひとつ読み込みます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
入力シーケンスから文字をひとつ読み込み、シーケンスを進めます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
stossc (C++98で非推奨)(C++17で削除) |
sbumpc() を呼んだかのように入力シーケンスを進めて、その結果を破棄します (パブリックメンバ関数) |
シーケンスを進めずに入力シーケンスから文字をひとつ読み込みます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
xsgetn() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
put 領域 | |
文字をひとつ put 領域に書き込み、次ポインタを進めます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
xsputn() を呼びます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
putback | |
入力シーケンスに文字をひとつ戻します ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
入力シーケンスの次ポインタを1つ前に移動させます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
|
プロテクテッドメンバ関数
basic_streambuf オブジェクトを構築します (プロテクテッドメンバ関数) | |
(C++11) |
basic_streambuf オブジェクトを置き換えます (プロテクテッドメンバ関数) |
(C++11) |
2つの basic_streambuf オブジェクトを入れ替えます (プロテクテッドメンバ関数) |
ロケール | |
[仮想] |
紐付けられているロケールを変更します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
位置設定 | |
[仮想] |
可能であれば、バッファをユーザ定義の配列に置き換えます ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を相対位置を使用し���再設定します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を絶対位置を使用して再設定します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
バッファを紐付けられている文字シーケンスと同期します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
get 領域 | |
[仮想] |
紐付けられている入力シーケンス内の入力のために利用可能な文字数 (もし判れば) を取得します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
紐付けられている入力シーケンスから get 領域に文字を読み込みます ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
紐付けられている入力シーケンスから get 領域に文字を読み込み、次ポインタを進めます ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
入力シーケンスから複数の文字を読み込みます ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
get 領域の先頭、現在の文字、終端へのポインタを返します (プロテクテッドメンバ関数) | |
入力シーケンスの次ポインタを進めます (プロテクテッドメンバ関数) | |
入力シーケンスの先頭、次、終端ポインタの位置を再設定します (プロテクテッドメンバ関数) | |
put 領域 | |
[仮想] |
出力シーケンスに複数の文字を出力します ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
[仮想] |
put 領域から紐付けられている出力シーケンスに文字を書き込みます ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
put 領域の先頭、現在の文字、終端へのポインタを返します (プロテクテッドメンバ関数) | |
出力シーケンスの次ポインタを進めます (プロテクテッドメンバ関数) | |
出力シーケンスの先頭、次、終端ポインタの位置を再設定します (プロテクテッドメンバ関数) | |
putback | |
[仮想] |
入力シーケンスに文字を戻します。 入力シーケンスを変更する可能性があります ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|