具有非平凡構造函數的C++ 11中的全局變量在靜態初始化階段進入main之前構造。C++ 11:std ref全局變量和非函數本地thread_local初始化順序?
同樣,非線程本地thread_local變量是在每個線程「thread_local初始化階段」期間構造的。
C++ 11標準是否規定了構建這些變量的順序?在這兩種情況下,如果有兩個變量:
// global scope
A::A() { b.f(); } // A constructor uses global b
A a;
B b;
請問C++ 11個標準指定以什麼順序,他們將被初始化,或者,如果一個變量用於初始化應該產生一個錯誤?
同樣,對於非功能本地thread_local:
// global scope
A::A() { b.f(); } // A constructor uses global b
thread_local A a;
thread_local B b;
是否標準規定必須將它們構建的秩序,它規定如果變量是從另一個構造方法之前,它曾經會發生什麼初始化?
您能否提供C++ 11標準參考號以支持您提出的任何索賠要求。
也許你可以重新命名第二個例子中的變量,使其更清楚地知道答案所指的是什麼。 –