std::ios_base:: Init
|
class
Init
;
|
||
このクラスは、デフォルトのC++ストリーム( std::cin 、 std::cout など)が適切に初期化および破棄されることを保証するために使用されます。このクラスは自身のインスタンスがいくつ作成されたかを追跡し、最初のインスタンスが構築された時にC++ストリームを初期化し、最後のインスタンスが破棄された時に出力ストリームをフラッシュします。
ヘッダー
<iostream>
は、静的ストレージ期間を持つ
std::ios_base::Init
のインスタンスを(直接的または間接的に)定義しているかのように振る舞います:これにより、
順序付けられた初期化
を持つ静的オブジェクトのコンストラクタおよびデストラクタ内で標準入出力ストリームに安全にアクセスできます(ただし、これらのオブジェクトが定義される前に翻訳単位で
<iostream>
がインクルードされている場合に限ります)。
|
ホストされた実装における各
C++ライブラリモジュール
は、
インターフェース単位
を含み、エクスポートされない
その結果、その変数の定義は、C++ライブラリモジュールのインポートポイントに続くあらゆる宣言よりも外観順序で前に配置される。そのような定義が存在するかどうかは、標準iostreamオブジェクトを参照しないプログラムからは観測できない。 |
(C++23以降) |
メンバー関数
|
(constructor)
|
まだ作成されていない場合、デフォルトのC++ストリームを初期化します
(public member function) |
|
(destructor)
|
*
this
が破棄される最後のインスタンスである場合、デフォルトのC++ストリームをフラッシュします
(public member function) |
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 1123 | C++98 |
コンストラクタとデストラクタの動作が
説明専用の静的データメンバ
init_cnt
に依存していた
|
依存関係を除去 |
関連項目
|
標準C入力ストリームからの読み込み
stdin
(グローバルオブジェクト) |
|
|
標準C出力ストリームへの書き込み
stdout
(グローバルオブジェクト) |
|
|
標準Cエラーストリームへの書き込み
stderr
、バッファリングなし
(グローバルオブジェクト) |
|
|
標準Cエラーストリームへの書き込み
stderr
(グローバルオブジェクト) |