पुस्तक "कार्रवाई में सी ++ कन्करेंसी" में लौटने पढ़ने के लिए निम्न विधिसी ++ 11 कदम जब एक ताला
std::unique_lock<std::mutex> wait_for_data()
{
std::unique_lock<std::mutex> head_lock(head_mutex);
data_cond.wait(head_lock,[&]{return head.get()!=get_tail();});
return std::move(head_lock);
}
मैं नहीं समझ सकता क्यों head_lock std :: चाल-एड जब वापस लौटा है। चाल के उपयोग और आरवीओ की मेरी धारणा और आंत महसूस C++11 rvalues and move semantics confusion (return statement)
पर साझा राय से मेल खाता है लेकिन मैं लेखक को बेहतर तरीके से जानने के लिए भरोसा करता हूं। क्या कोई स्पष्टीकरण दे सकता है जब std :: वापसी मूल्य को स्थानांतरित करना बेहतर होता है और क्या ताले के बारे में कुछ खास है? धन्यवाद।
मैंने इसे बिना किसी बदलाव के संकलित करने की कोशिश की, और g ++ वास्तव में इसे संकलित करता है। –
की प्रतिलिपि नहीं बनाई जा सकती है, लेकिन इसे चलाया जा सकता है! तुम गलत हो ! –
@typical बिल्कुल, क्योंकि यह एक कदम है, एक प्रति नहीं, यहां तक कि 'std :: move' के बिना भी। –