में std :: deque से तत्व को ले जाएं हम जानते हैं कि std::deque::front()
डेक के पहले तत्व का संदर्भ देता है। इस कोड को हमेशा सुरक्षित है अगर मैं करूंगा पता करने के लिए:सी ++ 11
//deque of lambdas
deque<function<void(void)>> funs;
// then is some other place:
// take a lock
m.lock();
auto f = move(funs.front()); // move the first lambda in f
funs.pop_front(); // remove the element from deque //now the value is hold by f
m_.unlock(); // unlock the resorce
f(); //execute f
मैं का उपयोग कर जीसीसी-4.9 और काम करता है इस कोड की कोशिश की है, लेकिन मैं अगर हम इस कोड सुरक्षित विचार कर सकते हैं पता नहीं है!
यह लगभग एक मान्य कोड है। लगभग - क्योंकि आप खालीपन की जांच नहीं कर रहे हैं। संग्रहीत तत्व की गति एक सुरक्षित संचालन है। – bobah
टाइपो रिपोर्ट: आप 'm'' पर 'लॉक() 'और' अनलॉक()' 'm_' पर उपयोग करते हैं। – Notinlist