提升线程移动分配与移动构造函数

Jas*_*Jas 0 c++ boost doc boost-thread

移动构造函数的Boost.Thread库规范声明为

移动构造函数:

效果:将由其他(如果有)管理的线程的所有权转移到新构造的boost :: thread实例.

而对于移动分配:

将其他(如果有)管理的线程的所有权转移给*this.如果有一个先前与*this相关联的线程,那么该线程将被分离.

显然,对于移动分配,明确声明先前的线程对象变得分离.

由于尚未定义boost :: thread对象的复制,并且只能移动所有权,这是否意味着使用Move Constructor,以前的所有者线程不会分离?

或者这只是一个文件疏忽?

GMa*_*ckG 6

你是误会.标记线程对象A和B,以及实际线程T.

如果B拥有T,则从B移动构造A意味着A现在拥有T,而B则不拥有任何东西.
如果B拥有T,则移动从B分配A意味着A现在拥有T,而B不拥有任何东西,并且A先前拥有的任何东西都不归任何东西(又名,分离).