5
嘗試進行簡單的一塊代碼的工作:移動的std ::線程
std::thread threadFoo;
std::thread&& threadBar = std::thread(threadFunction);
threadFoo = threadBar; // thread& operator=(thread&& other); expected to be called
得到一個錯誤:
use of deleted function 'std::thread& std::thread::operator=(const std::thread&)'
我明確界定threadBar
爲右值引用,而不是普通的一個。爲什麼不要求運營商被叫?如何將一個線程移動到另一個線程?
謝謝!
謝謝你的回答。我是否正確地使用期望的操作符可以使用的一個(也是唯一的?)方法是使用臨時線程對象,如'threadFoo = std :: thread(threadFunction);'? – Kolyunya
您從'std :: move'獲得的臨時或未命名引用。 –
感謝您的解釋! – Kolyunya