名前空間
変種
操作

std::basic_osyncstream

提供: cppreference.com
< cpp‎ | io
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(非推奨)
(非推奨)
(非推奨)
同期出力
basic_osyncstream
(C++20)
エラーカテゴリインタフェース
(C++11)
 
 
ヘッダ <syncstream> で定義
template<

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

> class basic_osyncstream: public std::basic_ostream<CharT, Traits>
(C++20およびそれ以降)

クラステンプレート std::basic_osyncstreamstd::basic_syncbuf のための便利なラッパーです。 同じストリームに書き込む複数のスレッドを同期する仕組みを提供します。

名前付きの変数で使用することができます。

{
  std::osyncstream synced_out(std::cout); // synchronized wrapper for std::cout
  synced_out << "Hello, ";
  synced_out << "World!";
  synced_out << std::endl; // flush is noted, but not yet performed
  synced_out << "and more!\n";
} // characters are transferred and std::cout is flushed

また、一時オブジェクトで使用することもできます。

std::osyncstream(std::cout) << "Hello, " << "World!" << '\n';

最終目的バッファへのすべての書き込みが std::basic_osyncstream のインスタンス (異なるインスタンスでも構いません) を通して行われる限り、同じ最終目的バッファ (上の例では std::cout) に行われるすべての出力が、データ競合を起こさず、インターリーブまたは文字化けしないことが保証されます。

一般的な std::basic_osyncstream の実装はひとつのメンバ、ラップされた std::basic_syncbuf のみを保持します。

一般的な文字型に対して2つの特殊化が定義されます。

ヘッダ <syncstream> で定義
定義
osyncstream basic_osyncstream<char>
wosyncstream basic_osyncstream<wchar_t>

目次

[編集] メンバ型

メンバ型 定義
char_type CharT[edit]
traits_type Traits[edit]
int_type Traits::int_type[edit]
pos_type Traits::pos_type[edit]
off_type Traits::off_type[edit]
allocator_type Allocator
streambuf_type std::basic_streambuf<CharT, Traits>
syncbuf_type std::basic_syncbuf<CharT, Traits, Allocator>

[編集] メンバ関数

basic_osyncstream を構築します
(パブリックメンバ関数) [edit]
basic_osyncstream を代入します
(パブリックメンバ関数) [edit]
basic_osyncstream を破棄し、その内部バッファを排出します
(パブリックメンバ関数) [edit]
ベースとなる basic_syncbuf へのポインタを取得します
(パブリックメンバ関数) [edit]
最終目的ストリームバッファへのポインタを取得します
(パブリックメンバ関数) [edit]
内部データを最終目的地に転送するためにベースとなる basic_syncbuf に対して emit を呼びます
(パブリックメンバ関数) [edit]

std::basic_ostream から継承

メンバ関数

書式付き入力
書式付きデータを挿入します
(std::basic_ostreamのパブリックメンバ関数) [edit]
書式なし入力
文字を挿入します
(std::basic_ostreamのパブリックメンバ関数) [edit]
文字のブロックを挿入します
(std::basic_ostreamのパブリックメンバ関数) [edit]
位置設定
出力位置指示子を返します
(std::basic_ostreamのパブリックメンバ関数) [edit]
出力位置指示子を設定します
(std::basic_ostreamのパブリックメンバ関数) [edit]
その他
ベースとなるストレージデバイスと同期します
(std::basic_ostreamのパブリックメンバ関数) [edit]

メンバクラス

出力操作用にストリームを準備するための基本ロジックを実装します
(std::basic_ostreamのパブリックメンバクラス) [edit]

std::basic_ios から継承

メンバ型

メンバ型 定義
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

メンバ関数

状態関数
エラーが発生していない (すなわち入出力操作が使用可能) かどうか調べます
(std::basic_iosのパブリックメンバ関数) [edit]
ファイル終端に達したかどうか調べます
(std::basic_iosのパブリックメンバ関数) [edit]
エラーが発生したかどうか調べます
(std::basic_iosのパブリックメンバ関数) [edit]
回復不可能なエラーが発生したかどうか調べます
(std::basic_iosのパブリックメンバ関数) [edit]
エラーが発生したかどうか調べます (fail() の同義語です)
(std::basic_iosのパブリックメンバ関数) [edit]
(C++11以前)(C++11およびそれ以降)
エラーが発生していないかどうか調べます (!fail() の同義語です)
(std::basic_iosのパブリックメンバ関数) [edit]
状態フラグを返します
(std::basic_iosのパブリックメンバ関数) [edit]
状態フラグを設定します
(std::basic_iosのパブリックメンバ関数) [edit]
状態フラグを変更します
(std::basic_iosのパブリックメンバ関数) [edit]
書式
書式情報をコピーします
(std::basic_iosのパブリックメンバ関数) [edit]
フィル文字を管理します
(std::basic_iosのパブリックメンバ関数) [edit]
その他
例外マスクを管理します
(std::basic_iosのパブリックメンバ関数) [edit]
ロケールを設定します
(std::basic_iosのパブリックメンバ関数) [edit]
紐付けられているストリームバッファを管理します
(std::basic_iosのパブリックメンバ関数) [edit]
結び付けられているストリームを管理します
(std::basic_iosのパブリックメンバ関数) [edit]
文字をナロー化します
(std::basic_iosのパブリックメンバ関数) [edit]
文字をワイド化します
(std::basic_iosのパブリックメンバ関数) [edit]

std::ios_base から継承

メンバ関数

書式
書式フラグを管理します
(std::ios_baseのパブリックメンバ関数) [edit]
特定の書式フラグをセットします
(std::ios_baseのパブリックメンバ関数) [edit]
特定の書式フラグをクリアします
(std::ios_baseのパブリックメンバ関数) [edit]
浮動小数点操作の10進精度を管理します
(std::ios_baseのパブリックメンバ関数) [edit]
フィールド幅を管理します
(std::ios_baseのパブリックメンバ関数) [edit]
ロケール
ロケールを設定します
(std::ios_baseのパブリックメンバ関数) [edit]
現在のロケールを返します
(std::ios_baseのパブリックメンバ関数) [edit]
内部の拡張可能な配列
[static]
pword() および iword() へのインデックスとして使用するのに安全な、プログラム全体で一意な整数を返します
(std::ios_baseのパブリック静的メンバ関数) [edit]
必要であればプライベートな記憶域をリサイズし、指定されたインデックスの long 要素にアクセスします
(std::ios_baseのパブリックメンバ関数) [edit]
必要であればプライベートな記憶域をリサイズし、指定されたインデックスの void* 要素にアクセスします
(std::ios_baseのパブリックメンバ関数) [edit]
その他
イベントのコールバック関数を登録します
(std::ios_baseのパブリックメンバ関数) [edit]
C++ と C の入出力ライブラリが相互運用可能であるかどうかを設定します
(std::ios_baseのパブリック静的メンバ関数) [edit]
メンバクラス
ストリームの例外
(std::ios_baseのパブリックメンバクラス) [edit]
標準ストリームオブジェクトを初期化します
(std::ios_baseのパブリックメンバクラス) [edit]

メンバ型および定数

説明
ストリームのオープンモードの型

以下の定数が定義されます。

定数 説明[edit]
app 各書き込み前にストリームの終端へシークします[edit]
binary バイナリモードで開きます[edit]
in 読み込み用に開きます[edit]
out 書き込み用に開きます[edit]
trunc 開くときにストリームの内容を破棄します[edit]
ate 開いた直後にストリームの終端へシークします[edit]

(typedef) [edit]
書式フラグの型

以下の定数が定義されます。

定数 説明[edit]
dec 整数の入出力に対して10進数を使用します。 std::dec を参照してください[edit]
oct 整数の入出力に対して8進数を使用します。 std::oct を参照してください[edit]
hex 整数の入出力に対して16進数を使用します。 std::hex を参照してください[edit]
basefield dec|oct|hex。 マスク操作に便利です[edit]
left 左詰め (フィル文字を右に追加します)。 std::left を参照してください [edit]
right 右詰め (フィル文字を左に追加します)。 std::right を参照してください [edit]
internal 内部詰め (フィル文字を内部の指定された位置に追加します)。 std::internal を参照してください [edit]
adjustfield left|right|internal。 マスク操作に便利です [edit]
scientific 科学表記を使用して浮動小数点型を生成します (fixed と組み合わせた場合は16進表記)。 std::scientific を参照してください [edit]
fixed 固定表記を使用して浮動小数点型を生成します (scientific と組み合わせた場合は16進表記)。 std::fixed を参照してください [edit]
floatfield scientific|fixed。 マスク操作に便利です [edit]
boolalpha bool 型をアルファベット形式で挿入および抽出します。 std::boolalpha を参照してください [edit]
showbase 整数の出力に対して数値の基数を表す接頭辞を生成し、金額の入出力に対して金額指示子を要求します。 std::showbase を参照してください [edit]
showpoint 浮動小数点数の出力に対して小数点を無条件に生成します。 std::showpoint を参照してください [edit]
showpos 非負の数値の出力に対して + 文字を出力します。 std::showpos を参照してください [edit]
skipws 特定の入力操作の前に先行するホワイトスペースをスキップします。 std::skipws を参照してください [edit]
unitbuf 各出力操作の後に出力をフラッシュします。 std::unitbuf を参照してください [edit]
uppercase 特定の出力操作で特定の小文字を同等な大文字に置き換えます。 std::uppercase を参照してください [edit]

(typedef) [edit]
ストリーム状態の型

以下の定数が定義されます。

定数 説明[edit]
goodbit エラーなし [edit]
badbit 回復不可能なストリームのエラー [edit]
failbit 入出力操作が失敗しました (書式エラーまたは抽出エラー) [edit]
eofbit 紐付けられている入力シーケンスがファイル終端に達しました [edit]

(typedef) [edit]
シーク方向の型

以下の定数が定義されます。

定数 説明[edit]
beg ストリームの先頭 [edit]
end ストリームの終端 [edit]
cur ストリームの位置指示子の現在位置 [edit]

(typedef) [edit]
イベントの種類を規定します
(列挙) [edit]
コールバック関数の型
(typedef) [edit]