std::basic_osyncstream
From cppreference.com
| ヘッダ <syncstream> で定義 |
||
| template< class CharT, |
(C++20以降) | |
クラステンプレート std::basic_osyncstream は、std::basic_syncbuf の便利なラッパーです。同じストリームに書き込むスレッドを同期させるメカニズムを提供します。
名前付き変数で使用できます。
一時変数でも使用できます。
std::osyncstream(std::cout) << "Hello, " << "World!" << '\n';
std::basic_osyncstream の(おそらく異なる)インスタンスを介して、その最終的な出力先バッファへのすべての書き込みが行われる限り、同じ最終的な出力先バッファ(上記の例では std::cout)に行われるすべての出力がデータ競合から解放され、いかなる方法でもインターリーブされたり破損したりしないことが保証されます。
std::basic_osyncstream の典型的な実装は、ラップされた std::basic_syncbuf という1つのメンバーのみを保持します。
継承図
一般的な文字型のためにいくつかの typedef が提供されています
| ヘッダ
<syncstream> で定義 | |
| 型 | 定義 |
std::osyncstream
|
std::basic_osyncstream<char> |
std::wosyncstream
|
std::basic_osyncstream<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
|
アロケータ
|
streambuf_type
|
std::basic_streambuf<CharT, Traits> |
syncbuf_type
|
std::basic_syncbuf<CharT, Traits, Allocator> |
[編集] メンバ関数
basic_osyncstream オブジェクトを構築する(public member function) | |
basic_osyncstream オブジェクトを代入する(public member function) | |
basic_osyncstream を破棄し、その内部バッファを出力する(public member function) | |
基底となる basic_syncbuf へのポインタを取得する(public member function) | |
| 最終出力先ストリームバッファへのポインタを取得する (public member function) | |
基底となる basic_syncbuf の emit() を呼び出し、その内部データを最終出力先に送信する(public member function) |
std::basic_ostream から継承
メンバ関数
書式付き出力 | |
| 書式付きデータを挿入する ( std::basic_ostream<CharT,Traits>のpublicメンバ関数) | |
非書式付き出力 | |
| 文字を挿入する ( std::basic_ostream<CharT,Traits> の public メンバ関数) | |
| 文字ブロックを挿入する ( std::basic_ostream<CharT,Traits> の public メンバ関数) | |
位置付け | |
| 出力位置インジケータを返す ( std::basic_ostream<CharT,Traits> の public メンバ関数) | |
| 出力位置インジケータを設定する ( std::basic_ostream<CharT,Traits> の public メンバ関数) | |
その他 | |
| 基礎となるストレージデバイスと同期する ( std::basic_ostream<CharT,Traits> の public メンバ関数) | |
メンバクラス
| 出力操作のためにストリームを準備する基本的なロジックを実装する ( std::basic_ostream<CharT,Traits> の public メンバクラス) |
std::basic_ios から継承
メンバ型
| メンバ型 | 定義 |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
メンバ関数
状態関数 | |
| エラーが発生していないか、すなわちI/O操作が可能かを確認する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| ファイルの終端に達したかを確認する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| エラーが発生したかを確認する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 回復不能なエラーが発生したかを確認する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| エラーが発生したかを確認する (fail() のシノニム) ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
エラーが発生していないかを確認する (!fail() のシノニム)( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 状態フラグを返す ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 状態フラグを設定する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 状態フラグを変更する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
書式化 | |
| 書式化情報をコピーする ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| フィル文字を管理する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
その他 | |
| 例外マスクを管理する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| ロケールを設定する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 関連付けられたストリームバッファを管理する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 結びつけられたストリームを管理する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 文字をナロー化する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
| 文字をワイド化する ( std::basic_ios<CharT,Traits> の public メンバ関数) | |
std::ios_base から継承
メンバ関数
書式化 | |
| 書式フラグを管理する ( std::ios_base の public メンバ関数) | |
| 特定の書式フラグを設定する ( std::ios_base の public メンバ関数) | |
| 特定の書式フラグをクリアする ( std::ios_base の public メンバ関数) | |
| 浮動小数点数操作の小数点以下の精度を管理する ( std::ios_base の public メンバ関数) | |
| フィールド幅を管理する ( std::ios_base の public メンバ関数) | |
ロケール | |
| ロケールを設定する ( std::ios_base の public メンバ関数) | |
| 現在のロケールを返す ( std::ios_base の public メンバ関数) | |
内部拡張可能配列 | |
| [static] |
pword() と iword() のインデックスとして安全に使用できる、プログラム全体で一意な整数を返す ( std::ios_base の public static メンバ関数) |
| 必要に応じてプライベートストレージのサイズを変更し、指定されたインデックスの long 要素にアクセスする ( std::ios_base の public メンバ関数) | |
| 必要に応じてプライベートストレージのサイズを変更し、指定されたインデックスの void* 要素にアクセスする ( std::ios_base の public メンバ関数) | |
その他 | |
| イベントコールバック関数を登録する ( std::ios_base の public メンバ関数) | |
| [static] |
C++ と C の I/O ライブラリが相互運用可能かどうかを設定する ( std::ios_base の public static メンバ関数) |
メンバクラス | |
| ストリーム例外 ( std::ios_base の public メンバクラス) | |
| 標準ストリームオブジェクトを初期化する ( std::ios_base の public メンバクラス) | |
メンバ型と定数 | |||||||||||||||||||||||||||||||||||||||
| 型 | 説明 | ||||||||||||||||||||||||||||||||||||||
| ストリームオープンモードの型 以下の定数も定義される
(typedef) | |||||||||||||||||||||||||||||||||||||||
| 書式化フラグの型 以下の定数も定義される
(typedef) | |||||||||||||||||||||||||||||||||||||||
| ストリームの状態の型 以下の定数も定義される
(typedef) | |||||||||||||||||||||||||||||||||||||||
| シーク方向の型 以下の定数も定義される
(typedef) | |||||||||||||||||||||||||||||||||||||||
| イベントの種類を指定する (enum) | |||||||||||||||||||||||||||||||||||||||
| コールバック関数の型 (typedef) | |||||||||||||||||||||||||||||||||||||||
[編集] 注釈
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_syncbuf |
201803L |
(C++20) | 同期バッファ付き ostream (std::osyncstream, std::syncbuf) およびマニピュレータ |