Namespaces
Variants

std:: basic_syncbuf

From cppreference.net
< cpp ‎ | io
ヘッダーで定義 <syncstream>
template <

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

> class basic_syncbuf : public std:: basic_streambuf < CharT, Traits >
(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ポリシーに応じて、出力するか保留中のフラッシュを記録する
(公開メンバ関数)

非メンバー関数

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 ) とマニピュレータ