C++ 11では、関数スコープstatic/thread_local変数の初期化がスレッドセーフであることが保証されています。関数の入力時にも初期化されることが保証されていますか?よる関数スコープstaticまたはthread_local変数は、C++ 11の最初のエントリで初期化されていますか?
0
A
答えて
0
[stmt.dcl]/4(強調鉱山):
静的ストレージ期間(3.7.1)またはスレッドストレージ 持つすべてのブロックスコープ変数のゼロ初期化(8.5)他の初期化が行われる前に、持続時間(3.7.2)はで実行されます。 ブロックスコープエンティティの固定初期化(3.6.2)は、ブロックが最初に入力される前に、実行されます()。 インプリメンテーションでは、実装が静的に許可されているのと同じ条件で、静的またはスレッド記憶期間が の他のブロックスコープ変数の初期初期化を実行することが許可されています。 2)。そうでなければ、そのような変数は で初期化されます最初のコントロールはその宣言を通過します。このような変数は、その初期化の完了時に で初期化されたとみなされます。
「関数入力」とは何を意味するのかよく分かりませんが、答えはすべて引用した段落にあります。
関連する問題
- 1. C++ 11は初期化されたメンバフィールドを再初期化しますか?
- 2. 私の変数は初期化されていませんか?
- 3. C:リンクリストの変数が初期化されていません
- 4. TensorFlowでは、初期化されていない変数を初期化する方法はありますか? TensorFlowで変数を初期化する
- 5. 初期化されていないグローバル変数はどこで初期化されますか?
- 6. アクティビティのインスタンス変数はいつ初期化されますか?
- 7. C++ 11関数呼び出しでのベクトルの初期化
- 8. グローバル変数のデストラクタでthread_local変数を初期化することはできますか?
- 9. C++ 11メンバ関数をコンパイルしてスレッドを初期化する
- 10. TensorFlow:初期化されていない変数を変数スコープで初期化し、再利用する方法はありますか?
- 11. 最初のレールまたは初期化されないレール
- 12. クラスレベルで宣言され、page_loadで初期化された変数は、button_clickイベントハンドラでスコープを失いますか?
- 13. Cでは、なぜ0に初期化された変数は "nm"で初期化されていないと報告されますか?
- 14. 初期化されていないローカル変数が実際に初期化されていますか?
- 15. C++ 11関数ローカル静的constオブジェクトのスレッドセーフ初期化
- 16. あいまいな関数id-expressionのC++ 11初期化子?以下のC++コード11で
- 17. non-trivial thread_local変数の初期化:なぜオンデマンドのみですか?
- 18. 静的変数は特定のスレッドで初期化されていますか?
- 19. グローバル変数初期化の最適化
- 20. グローバル変数の初期化はいつ行われますか?
- 21. メンバー関数を使用して初期化リストのメンバー変数を初期化できますか?
- 22. ローカル変数が初期化されていませんか?
- 23. 日付関数でクラス変数を初期化しますか?
- 24. C++:初期化されていない変数出力はXcodeで0です
- 25. Fortran 2003で変数が初期化されていません
- 26. C++ 11クラス初期化エラー
- 27. 初期化変数は
- 28. 関数が初期化されていません
- 29. gcc - removal "はこの関数で初期化されていません"警告
- 30. Forループの初期化された変数への関数の割り当て?
私が意味することは、私が関数を呼び出さないと、コンストラクタを呼び出すべきではないということです。 –
@SiyuanRen私は、初期の初期化が許可されているので、これは保証されていないと思います。あなたが心に留めている特定の目的のためにこれが重要であれば、あなたが心配しているケースを示す新しい質問を投稿することをお勧めします。 – Brian