#include <iostream>
#include <thread>
void f() {
std::cout << "hello" << std::endl;
}
int main() {
std::thread(f);
while(true) {}
}
运行上面的代码会像我预期的那样永久挂起,但它不会打印任何内容。如果thread(f)
替换为thread t(f)
,则会打印hello
。这是否意味着我的编译器有错误?我在arch linux上使用gcc 7.2.1。