std:: basic_syncbuf
|
ヘッダーで定義
<syncstream>
|
||
|
template
<
class
CharT,
|
(C++20以降) | |
std::basic_syncbuf
は、
std::basic_streambuf
(構築時にポインタとして提供される)のラッパーです。これは独自の内部バッファに出力を蓄積し、破棄時および明示的に要求されたときにその内容全体をラップされたバッファにアトミックに送信し、連続した文字列として表示されるようにします。同じバッファへの他のすべての出力が(異なる可能性のある)
std::basic_syncbuf
のインスタンスを通じて行われる限り、データ競合がなく、ラップされたバッファに送信される文字のインターリーブが発生しないことを保証します。
std::basic_syncbuf
の典型的な実装は、ラップされた
std::basic_streambuf
へのポインタ、同期(フラッシュ)時にラップされたバッファに内容を送信するかどうかを示すブールフラグ、同期時に出力しないポリシーの場合の保留中のフラッシュを示すブールフラグ、
Allocator
を使用する内部バッファ(例:
std::string
)、および同じラップされたストリームバッファにアクセスする複数のスレッド間での出力を同期するために使用されるミューテックスへのポインタ(これらのミューテックスは、
std::basic_streambuf
オブジェクトへのポインタをキーとして使用するハッシュマップ内にある場合があります)を保持します。
他のストリームバッファクラスと同様に、
std::basic_syncbuf
は通常、対応するストリームである
std::osyncstream
を通じてのみアクセスされ、直接アクセスされることはありません。
一般的な文字型に対するいくつかのtypedefが提供されています:
|
定義済みヘッダー
<syncstream>
|
|
| 型 | 定義 |
std::syncbuf
|
std :: basic_syncbuf < char > |
std::wsyncbuf
|
std :: basic_syncbuf < 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
|
streambuf_type
|
std:: basic_streambuf < CharT, Traits > |
メンバー関数
公開メンバ関数 |
|
basic_syncbuf
オブジェクトを構築する
(公開メンバ関数) |
|
basic_syncbuf
オブジェクトを代入する
(公開メンバ関数) |
|
2つの
basic_syncbuf
オブジェクトを交換する
(公開メンバ関数) |
|
basic_syncbuf
を破棄し、内部バッファを出力する
(公開メンバ関数) |
|
|
内部バッファ全体をアトミックにラップされたstreambufに送信する
(公開メンバ関数) |
|
|
ラップされたstreambufポインタを取得する
(公開メンバ関数) |
|
この
basic_syncbuf
で使用されるアロケータを取得する
(公開メンバ関数) |
|
|
現在のemit-on-syncポリシーを変更する
(公開メンバ関数) |
|
保護メンバ関数 |
|
|
現在のemit-on-syncポリシーに応じて、出力するか保留中のフラッシュを記録する
(公開メンバ関数) |
|
非メンバー関数
|
(C++20)
|
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>
の仮想公開メンバ関数)
|
ロケール |
|
|
関連付けられたロケールを変更し、
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>
の公開メンバ関数)
|
|
取得領域 |
|
|
取得領域で直ちに利用可能な文字数を取得する
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
|
入力シーケンスを進め、再度進めずに1文字を読み込む
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
|
(C++17で削除)
|
入力シーケンスから1文字を読み込み、シーケンスを進める
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
入力シーケンスからシーケンスを進めずに1文字を読み込む
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
|
xsgetn
(
)
を呼び出す
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
格納領域 |
|
|
格納領域に1文字を書き込み、次のポインタを進める
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
|
xsputn
(
)
を呼び出す
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
プットバック |
|
|
入力シーケンスに1文字を戻す
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
|
入力シーケンスの次のポインタを1つ戻す
(
std::basic_streambuf<CharT,Traits>
の公開メンバ関数)
|
|
プロテクテッドメンバー関数
basic_streambuf
オブジェクトを構築する
(protectedメンバ関数) |
|
|
(C++11)
|
basic_streambuf
オブジェクトを置き換える
(protectedメンバ関数) |
|
(C++11)
|
2つの
basic_streambuf
オブジェクトを交換する
(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>
の仮想保護メンバー関数)
|
|
[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>
の仮想protectedメンバ関数)
|
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_syncbuf
|
201803L
|
(C++20) |
同期化バッファ付きostream (
std::syncbuf
,
std::osyncstream
) とマニピュレータ
|