5
Starając się wykonywać proste dzieło kodu:Moving std :: wątek
std::thread threadFoo;
std::thread&& threadBar = std::thread(threadFunction);
threadFoo = threadBar; // thread& operator=(thread&& other); expected to be called
otrzymuję błąd:
use of deleted function 'std::thread& std::thread::operator=(const std::thread&)'
jawnie zdefiniować threadBar
jako odniesienie rvalue, a nie zwykłym jeden. Dlaczego nie wywołano spodziewanego operatora? Jak przenieść jeden wątek do drugiego?
Dziękujemy!
Dziękuję za odpowiedź. Czy mam rację, że jedyny (i jedyny?) Sposób, w jaki można użyć oczekiwanego operatora, to tymczasowy obiekt wątku typu 'threadFoo = std :: thread (threadFunction);'? – Kolyunya
Dowolne tymczasowe lub nienazwane odniesienie otrzymane z 'std :: move'. –
Dzięki za wyjaśnienie! – Kolyunya