मैं मजेदार के लिए सी ++ 11 के साथ खेल रहा हूं। मैं सोच रहा हूँ कि ऐसा क्यों होता:सी ++ 11 लैम्ब्डा अभिव्यक्तियों में स्कोप चर के बाहर उपयोग करके
//...
std::vector<P_EndPoint> agents;
P_CommunicationProtocol requestPacket;
//...
bool repeated = std::any_of(agents.begin(), agents.end(),
[](P_EndPoint i)->bool
{return requestPacket.identity().id()==i.id();});
संकलन इस त्रुटि के साथ समाप्त हो जाता है:
error: 'requestPacket' has not been declared
कौन सा कोड में पहले घोषित किया जाता है। मैंने ::requestPacke
की कोशिश की और यह भी काम नहीं करता है।
मैं लैम्ब्डा फ़ंक्शन के अंदर बाहरी स्कोप चर का उपयोग कैसे कर सकता हूं?
वे अंदर हैं एक वर्ग की एक विधि पक्ष। यह एक अच्छा खिताब नहीं है, शायद मुझे इसे 'मौजूदा दायरे से बाहर' में बदलना चाहिए ... –