पर मान निर्दिष्ट करें हम std::reference_wrapper
द्वारा लिपटे आइटम को मान कैसे निर्दिष्ट कर सकते हैं?एक मान को std :: context_wrapper
int a[] = {0, 1, 2, 3, 4};
std::vector <std::reference_wrapper<int>> v(a, a+5);
v[0] = 1234; // Error, can not assign value !
त्रुटि के लिए Accoring, सीधे काम हटा दी जाती है:
error: use of deleted function 'std::reference_wrapper<_Tp>::reference_wrapper(_Tp&&) [with _Tp = int]'
बस सोच रहा है, रूपांतरण ऑपरेटर का क्या उपयोग है यदि इसका उपयोग इस तरह नहीं किया जा सकता है? मुझे 'static_cast (v [0]) = 1111; 'थोड़ा मिलता है जब' मिलता है()' है। –
chris
शायद यह भी जोड़ें कि 'std :: context_wrapper' का गैर-स्पष्ट कन्स्ट्रक्टर यहां महत्वपूर्ण है जो उदा। 'boost :: context_wrapper' नहीं है। – inf
@ क्रिस, ऐसा इसलिए है कि आप 'टी' और '' लेते हुए एक समारोह में 'context_wrapper' पास कर सकते हैं (मुझे लगता है कि मैं वहां भी 'get()' कह सकता हूं, लेकिन यह और अधिक verbose होगा)। –