#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/

10-13 03:31