所以有兩件事我不確定。std ::移動堆棧對象(到不同的線程)
如果我做這樣的事情:
void sendToDifferentThread(SomeClass &&obj); ... { SomeClass object; sendToDifferentThread(std::move(object)); }
會發生什麼?如果在堆棧中創建了object
,那麼如何才能創建一個副本?因爲當我們走出封閉範圍時,堆棧中的所有東西都被銷燬了?
如果我做這樣的事情:
SomeClass object; doSomethingOnSameThread(std::move(object));
如果我這樣做在當前範圍內會有些事情發生後object
什麼?它被「移走」到某種其他功能,當前功能在某種程度上「失去」它的所有權嗎?
如果您將引用綁定到某個對象,則確保該對象在任何人使用該引用時都處於活動狀態。 –