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