5
Cố mảnh làm đơn giản của việc mã:Moving std :: chủ đề
std::thread threadFoo;
std::thread&& threadBar = std::thread(threadFunction);
threadFoo = threadBar; // thread& operator=(thread&& other); expected to be called
Bắt một lỗi:
use of deleted function 'std::thread& std::thread::operator=(const std::thread&)'
tôi một cách rõ ràng xác định threadBar
như một tài liệu tham khảo rvalue, không phải là một bình thường. Tại sao nhà điều hành không mong đợi được gọi? Làm cách nào để di chuyển một chuỗi sang chuỗi khác?
Cảm ơn bạn!
Cảm ơn bạn đã trả lời. Tôi có làm cho nó đúng rằng một (và chỉ?) Cách các nhà điều hành dự kiến có thể được sử dụng là với một đối tượng thread tạm thời như 'threadFoo = std :: thread (threadFunction);'? – Kolyunya
Hoặc là một tham chiếu tạm thời hoặc không tên khi bạn nhận được từ 'std :: move'. –
Cảm ơn bạn đã giải thích! – Kolyunya