如果您创建了一个类的对象,并将其传递给std::线程初始化构造函数,那么类对象就会被构造和破坏4倍之多。我的问题是:你能一步一步地解释一下这个程序的输出吗?为什么这个类在这个过程中被构造、复制和破坏了那么多次?something to do }
std::cout << "thread finished, x=&qu
我已经开始阅读安东尼·威廉姆斯的"C++ Concurrency in action,seconds“。在它的2.2部分中,他写道,线程函数的参数被复制到新线程上。我在几个编译器上检查了这一点,这是真的:如果我们传递一个左值-它会被复制到新的线程上。
Anthony写道,这可能代表未定义的行为-当新线程启动时,lvalue可能会超出原始作用域的范围。这是否意味着每个std::thr