在我的计算机上,GCC并未调用thread_local
的析构函数。
该代码可以在clang 7和Visual Studio上正常运行。
这是一个错误吗? 我正在Windows上使用MinGW GCC 8.1。
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
代码如下:
#include <iostream>
struct A {
A() {
std::cout << "A()\n";
}
~A() {
std::cout << "~A()\n";
}
void
print() {
std::cout << "A\n";
}
};
thread_local A a;
int
main() {
a.print();
return 0;
}