std:: basic_spanbuf
|
ヘッダーで定義
<spanstream>
|
||
|
template
<
class
CharT,
|
(C++23以降) | |
std::basic_spanbuf
は、
std::basic_streambuf
の派生クラスであり、関連付けられた文字シーケンスはメモリ常駐の任意の文字シーケンスで、
std::
span
<
CharT
>
のインスタンスから初期化したり、利用可能にしたりすることができます。
std::basic_spanbuf
は固定バッファに対してI/Oを実行するため、基盤となるバッファが枯渇した際に新しいバッファを取得しようとはしません。
一般的な文字型に対するいくつかのtypedefが提供されています:
|
定義済みヘッダー
<spanstream>
|
|
| 型 | 定義 |
std::spanbuf
|
std :: basic_spanbuf < char > |
std::wspanbuf
|
std :: basic_spanbuf < 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
|
データメンバ
| メンバー名 | 定義 |
mod
(private)
|
オープンモードを記録する
std::ios_base::openmode
。
( 説明専用メンバーオブジェクト* ) |
buf
(private)
|
基盤となるバッファを参照する
std::
span
<
CharT
>
。
( 説明専用メンバーオブジェクト* ) |
メンバー関数
公開メンバ関数 |
|
basic_spanbuf
オブジェクトを構築する
(公開メンバ関数) |
|
|
(destructor)
[virtual]
|
basic_spanbuf
オブジェクトを破棄する
(仮想公開メンバ関数) |
basic_spanbuf
オブジェクトを代入する
(公開メンバ関数) |
|
2つの
basic_spanbuf
オブジェクトを交換する
(公開メンバ関数) |
|
|
モードに応じて基盤となるバッファを取得または初期化する
(公開メンバ関数) |
|
保護メンバ関数 |
|
|
[virtual]
|
制御対象の文字シーケンスを配列で置き換えようとする
(仮想保護メンバ関数) |
|
[virtual]
|
相対アドレッシングを使用して、入力シーケンス、出力シーケンス、または両方の次のポインタを再配置する
(仮想保護メンバ関数) |
|
[virtual]
|
絶対アドレッシングを使用して、入力シーケンス、出力シーケンス、または両方の次のポインタを再配置する
(仮想保護メンバ関数) |
非メンバー関数
|
(C++23)
|
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メンバ関数)
|
|
プロテクテッドメンバー関数
basic_streambuf
オブジェクトを構築する
(protectedメンバ関数) |
|
|
(C++11)
|
basic_streambuf
オブジェクトを置換
(protected member function) |
|
(C++11)
|
2つの
basic_streambuf
オブジェクトを交換する
(protected メンバー関数) |
ロケール |
|
|
[virtual]
|
関連付けられたロケールの変更に反応する
(
std::basic_streambuf<CharT,Traits>
の仮想protectedメンバー関数)
|
配置 |
|
|
[virtual]
|
ユーザー定義の配列でバッファを置き換える(許可されている場合)
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
入力シーケンス、出力シーケンス、またはその両方の次のポインタを相対アドレッシングを使用して再配置する
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
入力シーケンス、出力シーケンス、またはその両方の次のポインタを絶対アドレス指定を使用して再配置する
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
関連付けられた文字シーケンスとバッファを同期する
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバ関数)
|
エリア取得 |
|
|
[virtual]
|
関連付けられた入力シーケンスで利用可能な文字数を取得する(既知の場合)
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
入力関連シーケンスから文字を読み取り、取得領域に格納する
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
入力関連シーケンスから文字を読み取り、ゲット領域に格納し、次ポインタを進める
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
入力シーケンスから複数の文字を読み込む
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
入力領域の先頭、現在の文字、および終端へのポインタを返す
(protected member function) |
|
|
入力シーケンスの次ポインタを進める
(protected member function) |
|
|
入力シーケンスの先頭、次、および終了ポインタの位置を再設定する
(protected member function) |
|
Putエリア |
|
|
[virtual]
|
出力シーケンスに複数の文字を書き込む
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
|
[virtual]
|
出力領域から関連付けられた出力シーケンスへ文字を書き込む
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバ関数)
|
|
出力領域の先頭、現在の文字、および終端へのポインタを返す
(protected member function) |
|
|
出力シーケンスの次ポインタを進める
(protected member function) |
|
|
出力シーケンスの先頭、次、および終了ポインタの位置を再設定する
(protected member function) |
|
Putback |
|
|
[virtual]
|
入力シーケンスに文字を戻し、入力シーケンスを変更する可能性がある
(
std::basic_streambuf<CharT,Traits>
の仮想保護メンバー関数)
|
注記
std::basic_spanbuf
は基盤となるバッファを所有しません。
プログラマは、
std::basic_spanbuf
オブジェクトによって使用される際に、基盤となるバッファがそのライフタイム内にあることを保証する責任があります。複数のスレッドが異なる
std::basic_spanbuf
オブジェクトを通じて同じ基盤バッファを操作する場合、追加の同期が必要となる可能性があります。
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_spanstream
|
202106L
|
(C++23) |
std::spanbuf
,
std::spanstream
|
関連項目
|
生文字列デバイスを実装する
(クラステンプレート) |
|
|
(C++98で非推奨)
(C++26で削除)
|
生文字配列デバイスを実装する
(クラス) |