Namespaces
Variants

std:: basic_spanbuf

From cppreference.net
< cpp ‎ | io
std::basic_spanbuf
ヘッダーで定義 <spanstream>
template <

class CharT,
class Traits = std:: char_traits < CharT >
> class basic_spanbuf

: public std:: basic_streambuf < CharT, Traits >
(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]
絶対アドレッシングを使用して、入力シーケンス、出力シーケンス、または両方の次のポインタを再配置する
(仮想保護メンバ関数)

非メンバー関数

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で削除)
生文字配列デバイスを実装する
(クラス)