所以有两件事我不确定。std ::移动堆栈对象(到不同的线程)
如果我做这样的事情:
void sendToDifferentThread(SomeClass &&obj); ... { SomeClass object; sendToDifferentThread(std::move(object)); }
会发生什么?如果在堆栈中创建了object
,那么如何才能创建一个副本?因为当我们走出封闭范围时,堆栈中的所有东西都被销毁了?
如果我做这样的事情:
SomeClass object; doSomethingOnSameThread(std::move(object));
如果我这样做在当前范围内会有些事情发生后object
什么?它被“移走”到某种其他功能,当前功能在某种程度上“失去”它的所有权吗?
如果您将引用绑定到某个对象,则确保该对象在任何人使用该引用时都处于活动状态。 –