std::basic_stringbuf
From cppreference.com
| ヘッダ <sstream> で定義 |
||
| template< class CharT, |
||
std::basic_stringbuf は、関連付けられた文字シーケンスがメモリ常駐の任意の文字シーケンスである std::basic_streambuf です。std::basic_string のインスタンスとして初期化したり、利用したりできます。
std::basic_stringbuf の一般的な実装では、std::basic_string 型または同等のサイズ変更可能なシーケンスコンテナのオブジェクトをデータメンバーとして直接保持し、それを制御文字シーケンス(std::basic_streambuf の6つのポインタが指す配列)と関連文字シーケンス(すべての入力操作の文字ソースおよび出力のターゲット)の両方として使用します。
さらに、一般的な実装では、関連付けられたストリームのI/Oモード(入力のみ、出力のみ、入出力、末尾など)を示す std::ios_base::openmode 型のデータメンバーを保持します。
|
overflow() で過剰割り当て戦略が使用される場合、最後に初期化された文字を追跡するために、追加のハイウォーターマークポインタが格納されることがあります。 |
(C++11以降) |
一般的な文字型のためにいくつかの typedef が提供されています
| ヘッダ
<sstream> で定義 | |
| 型 | 定義 |
std::stringbuf
|
std::basic_stringbuf<char> |
std::wstringbuf
|
std::basic_stringbuf<wchar_t> |
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
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 |
allocator_type
|
Allocator |
[編集] Exposition-only メンバ
buf |
基底バッファとして使用される std::basic_string<CharT, Traits, Allocator> (説明用のメンバオブジェクト*) |
mode |
関連するストリームの std::ios_base::openmode (説明用のメンバオブジェクト*) |
| 入力および出力シーケンスを初期化する (説明専用メンバ関数*) |
[編集] public メンバ関数
basic_stringbuf オブジェクトを構築する(public メンバ関数) | |
| (C++11) |
basic_stringbuf オブジェクトを代入する(public メンバ関数) |
| (C++11) |
2つの basic_stringbuf オブジェクトをスワップする(public メンバ関数) |
| (デストラクタ) [仮想] (暗黙的に宣言される) |
basic_stringbuf オブジェクトとそれが保持する文字列を破棄する(仮想 public メンバ関数) |
| 関連する文字文字列のコピーを置き換える、または取得する (public メンバ関数) | |
| (C++20) |
内部シーケンスコンテナに関連付けられたアロケータのコピーを取得する (public メンバ関数) |
| (C++20) |
基底文字シーケンスのビューを取得する (public メンバ関数) |
[編集] protected メンバ関数
| [virtual] |
入力シーケンスで利用可能な次の文字を返す (仮想 protected メンバ関数) |
| [virtual] |
文字を入力シーケンスに戻す (仮想 protected メンバ関数) |
| [virtual] |
出力シーケンスに文字を追加する (仮想 protected メンバ関数) |
| [virtual] |
制御文字シーケンスを配列で置き換えようとする (仮想 protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、相対アドレス指定を使用して次のポインタを再配置する (仮想 protected メンバ関数) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、絶対アドレス指定を使用して次のポインタを再配置する (仮想 protected メンバ関数) |
[編集] 非メンバ関数
| std::swap アルゴリズムを特殊化する (関数テンプレート) |
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 メンバ関数) |