मेरे पास पहले से सी # अनुभव है लेकिन मैं सी ++ में नया हूं। मैंने लैम्ब्डा का उपयोग करने की कोशिश करते समय यह समस्या देखी है जैसा कि मैंने किया था।क्या मैं ऑटो के बिना सी ++ लैम्ब्डा फ़ंक्शन को परिभाषित कर सकता हूं?
उदाहरण के लिए:
auto compare = [] (int i1, int i2) { return i1*2 > i2; }
वहाँ एक विशेष प्रकार का है, बजाय ऑटो कटौती के साथ लैम्ब्डा परिभाषित करने के लिए कोई तरीका है?
मैं यह पूछ रहा हूं क्योंकि मैं अपनी कक्षा के लिए एक आम लैम्ब्डा परिभाषित करना चाहता हूं। यह लैम्बाडा कई स्थानों पर उपयोग किया जाएगा, इसलिए मैं उन्हें कई बार परिभाषित नहीं करना चाहता हूं। हालांकि, 'ऑटो' का उपयोग केवल स्थिर सदस्यों पर ही किया जा सकता है, जबकि दूसरी ओर, मैं लैम्ब्डा में गैर स्थैतिक क्षेत्रों तक पहुंच बनाना चाहता हूं।
[std :: function] (http://www.cplusplus.com/reference/functional/function/function/) का उपयोग करने का प्रयास करें। – Nard
आप 'इस' को कैप्चर करके गैर स्थैतिक फ़ील्ड तक पहुंच सकते हैं। – cdhowie