#include <iostream>
using namespace std;
struct A
{
A() : n(7)
{}
int n;
};
thread_local A a;
int main()
{
cout << a.n << endl;
}
我的编译器是VS 2015附带的clang 3.8。
令我惊讶的是,输出应该是0
,而不是预期的7
。
为什么主线程没有调用A::A()
来初始化global thread_local
变量a
?
是否符合C ++标准?