名前空間
変種
操作

std::basic_stringbuf

提供: cppreference.com
< cpp‎ | io
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
basic_stringbuf
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
ヘッダ <sstream> で定義
template<

    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>

> class basic_stringbuf : public std::basic_streambuf<CharT, Traits>

std::basic_stringbuf はメモリ常駐の任意の文字のシーケンスを紐付けられている文字シーケンスに持つ std::basic_streambuf です。 std::basic_string のインスタンスから初期化する、または std::basic_string のインスタンスとして利用可能とすることができます。

std::basic_stringbuf の一般的な実装は、 std::basic_string 型のオブジェクトまたはそれと同等なリサイズ可能なシーケンスコンテナを直接データメンバとして保持し、それを制御された文字シーケンス (std::basic_streambuf の6つのポインタが指す先の配列) および紐付けられている文字シーケンス (すべての入力操作のための文字のソースおよび出力のためのターゲット) の両方のために使用します。

さらに、一般的な実装はストリームの状態 (入力のみ、出力のみ、入力と出力の両方、終端など) を表す std::ios_base::openmode 型のデータメンバを保持します。

overflow() によって過剰確保戦略が使用される場合、最後に初期化された文字を追跡するために追加の高水位ポインタも格納されるかもしれません。 (C++11以上)

一般的な文字型に対する2つの特殊化が定義されます。

ヘッダ <sstream> で定義
定義
stringbuf basic_stringbuf<char>
wstringbuf basic_stringbuf<wchar_t>

目次

[編集] メンバ型

メンバ型 定義
char_type CharT[edit]
traits_type TraitsTraits::char_typeCharT でない場合、プログラムは ill-formed です [edit]
int_type Traits::int_type[edit]
pos_type Traits::pos_type[edit]
off_type Traits::off_type[edit]
allocator_type (C++11以上) Allocator[edit]

[編集] メンバ関数

パブリックメンバ関数

basic_stringbuf オブジェクトを構築します
(パブリックメンバ関数) [edit]
(C++11)
basic_stringbuf オブジェクトを代入します
(パブリックメンバ関数) [edit]
(C++11)
2つの basic_stringbuf オブジェクトを入れ替えます
(パブリックメンバ関数) [edit]
デストラクタ
[仮想] (暗黙に宣言)
basic_stringbuf オブジェクトおよび保持している文字列を破棄します
(仮想パブリックメンバ関数) [edit]
紐付けられている文字列を置き換えまたはコピーを取得します
(パブリックメンバ関数) [edit]

プロテクテッドメンバ関数

[仮想]
入力シーケンスの次の利用可能な文字を返します
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
文字を入力シーケンスに戻します
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
出力シーケンスに文字を追加します
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
制御された文字シーケンスの配列との置き換えを試みます
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力シーケンス、出力シーケンス、または両方の次ポインタの位置を、相対位置を用いて再設定します
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力シーケンス、出力シーケンス、または両方の次ポインタの位置を、絶対位置を用いて���設定します
(仮想プロテクテッドメンバ関数) [edit]

[編集] 非メンバ関数

std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]

std::basic_streambuf から継承

メンバ型

メンバ型 定義
char_type CharT[edit]
traits_type TraitsTraits::char_typeCharT でない場合、プログラムは ill-formed です [edit]
int_type Traits::int_type[edit]
pos_type Traits::pos_type[edit]
off_type Traits::off_type[edit]

メンバ関数

basic_streambuf オブジェクトを破棄します
(std::basic_streambuf<CharT,Traits>の仮想パブリックメンバ関数) [edit]
ロケール
imbue() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
紐付けられているロケールのコピーを取得します
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
位置設定
setbuf() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
seekoff() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
seekpos() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
sync() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
get 領域
get 領域内の直ちに利用可能な文字数を取得します
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
入力シーケンスを進めて、その後、進めずに文字をひとつ読み込みます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
入力シーケンスから文字をひとつ読み込み、シーケンスを進めます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
stossc
(C++98で非推奨)(C++17で削除)
sbumpc() を呼んだかのように入力シーケンスを進めて、その結果を破棄します
(パブリックメンバ関数) [edit]
シーケンスを進めずに入力シーケンスから文字をひとつ読み込みます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
xsgetn() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
put 領域
文字をひとつ put 領域に書き込み、次ポインタを進めます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
xsputn() を呼びます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
putback
入力シーケンスに文字をひとつ戻します
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]
入力シーケンスの次ポインタを1つ前に移動させます
(std::basic_streambuf<CharT,Traits>のパブリックメンバ関数) [edit]

プロテクテッドメンバ関数

basic_streambuf オブジェクトを構築します
(プロテクテッドメンバ関数) [edit]
(C++11)
basic_streambuf オブジェクトを置き換えます
(プロテクテッドメンバ関数) [edit]
(C++11)
2つの basic_streambuf オブジェクトを入れ替えます
(プロテクテッドメンバ関数) [edit]
ロケール
[仮想]
紐付けられているロケールを変更します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
位置設定
[仮想]
可能であれば、バッファをユーザ定義の配列に置き換えます
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を相対位置を使用して再設定します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力シーケンス、出力シーケンス、またはその両方の次ポインタの位置を絶対位置を使用して再設定します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
バッファを紐付けられている文字シーケンスと同期します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
get 領域
[仮想]
紐付けられている入力シーケンス内の入力のために利用可能な文字数 (もし判れば) を取得します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
紐付けられている入力シーケンスから get 領域に文字を読み込みます
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
紐付けられている入力シーケンスから get 領域に文字を読み込み、次ポインタを進めます
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力シーケンスから複数の文字を読み込みます
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
get 領域の先頭、現在の文字、終端へのポインタを返します
(プロテクテッドメンバ関数) [edit]
入力シーケンスの次ポインタを進めます
(プロテクテッドメンバ関数) [edit]
入力シーケンスの先頭、次、終端ポインタの位置を再設定します
(プロテクテッドメンバ関数) [edit]
put 領域
[仮想]
出力シーケンスに複数の文字を出力します
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
put 領��から紐付けられている出力シーケンスに文字を書き込みます
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]
put 領域の先頭、現在の文字、終端へのポインタを返します
(プロテクテッドメンバ関数) [edit]
出力シーケンスの次ポインタを進めます
(プロテクテッドメンバ関数) [edit]
出力シーケンスの先頭、次、終端ポインタの位置を再設定します
(プロテクテッドメンバ関数) [edit]
putback
[仮想]
入力シーケンスに文字を戻します。 入力シーケンスを変更する可能性があります
(std::basic_streambuf<CharT,Traits>の仮想プロテクテッドメンバ関数) [edit]