目前还不清楚为什么具有线程存储持续时间的对象没有默认初始化?例如:
#include <iostream>
using std::cout;
struct S
{
S(){ cout << "S\n"; }
~S(){ cout << "~S\n"; }
};
thread_local S s;
int main()
{
}
stdout
为空。但我希望stdout
包含
S
~S
这是因为秒。 8.5 / 12 N3797:
如果没有为对象指定初始化程序,则该对象为 缺省初始化
这没有说明对象的存储持续时间。