#include <thread>
using namespace std;
struct A
{
A() {}
~A() {}
};
A g_a;
int main()
{
thread([]()
{
thread_local A tl_a;
exit(0);
}).detach();
}
C++标准是否保证在销毁
g_a
之后销毁tl_a
? 最佳答案
是的,它确实。
语言规范中的[basic.start.term]部分说
因此,线程局部变量将在静态(全局)变量之前被销毁。
关于c++ - 在销毁所有线程本地存储对象之后,是否保证销毁全局对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43083856/