C++-我如何能够为std::thread调用复制构造函数?

所以根据https://en.cppreference.com/w/cpp/thread/thread/thread:复制构造函数std::thread被删除,这是我不能做的原因(导致编译错误):

std::thread t1;
std::thread t2 = t1;

但是我不知何故能够做到:

std::thread t1;
t1 = std::thread();

我的印象是,上面的代码创建了一个临时std::thread对象并将其复制到其中,t1但复制构造函数不存在(如未编译的顶部代码段所示)。

那么在第二个片段中到底发生了什么?

回答

第二个使用移动分配。std::thread可以移动,但不能复制。

这也应该有效: std::thread t2 = std::move(t1); ,它将t2管理t1正在管理的任何线程,并且t1将为空。


以上是C++-我如何能够为std::thread调用复制构造函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>