मेरा शीर्षक मेरा मुख्य प्रश्न है। नीचे दिया गया कोड दिखाता है कि मैं क्या करना चाहता हूं, लेकिन यह एक त्रुटि का कारण बनता है।कैप्चर के साथ फ़ंक्शन में लैम्ब्डा कैसे पास करें?
class B
{
public:
void DoSomething(void (*func)())
{
func();
}
};
class A
{
public:
int x;
void Start(B* b)
{
auto func = [this]()->void
{
this->x++;
};
b->DoSomething(func);
}
};
यदि मैं "यह" कीवर्ड हटा देता हूं, तो प्रोग्राम काम करता है, लेकिन फिर मैं एक्स चर का संदर्भ नहीं दे सकता।
तो मैं इसे कैसे प्राप्त कर सकता हूं?
कोड और त्रुटियों पोस्ट करें। स्क्रीनशॉट खोजने योग्य नहीं हैं। – Pradhan