मैंने इंटरनेट पर कई ट्यूटोरियल पढ़े हैं जो मानक लाइब्रेरी (जैसे std::find
) के साथ लैम्ब्स का उपयोग करने के तरीके को समझाते हैं, और वे सभी बहुत ही रोचक थे, लेकिन मुझे यह नहीं मिला कि मैं अपने आप के लिए लैम्ब्डा का उपयोग कैसे कर सकता हूं कार्य करता है।लैम्बडा स्वीकार करने वाले फ़ंक्शन को कैसे घोषित करें?
उदाहरण के लिए:
int main()
{
int test = 5;
LambdaTest([&](int a) { test += a; });
return EXIT_SUCCESS;
}
मैं कैसे LambdaTest
घोषित करना चाहिए? इसका पहला तर्क किस प्रकार का है? और फिर, मैं इसे गुजरने वाले अज्ञात फ़ंक्शन को कैसे कॉल कर सकता हूं - उदाहरण के लिए - "10" इसकी तर्क के रूप में?
यह सबसे अच्छा जवाब है। – Puppy
त्रुटियों के मामले में त्रुटि संदेशों को समझना मुश्किल होगा। – liori
यह निर्भर करता है कि यह सबसे अच्छा है या नहीं। यह एक टेम्पलेट का उपयोग करता है, और दूसरा नहीं करता है। इसका मतलब है कि फ़ंक्शन अब वर्चुअल नहीं हो सकता है और सीपीपी फ़ाइल में अलग से परिभाषित नहीं किया जा सकता है। 'std :: function' पूरी तरह से फ़ंक्शन ऑब्जेक्ट क्लास प्रकारों को लेने में सक्षम है, यद्यपि कॉल करते समय थोड़ा धीमा है। लेकिन यह अंतर बहुत अधिक अनुप्रयोगों के लिए नगण्य है :) –