जेनेरिक lambdas lambdas कि के रूप में पढ़ा को परिभाषित करने का एक तरीका है बनाम जेनेरिक lambdas इस प्रकार है:स्टैंडर्ड टेम्पलेट कार्य (क्या उपयोग करने के लिए और जब)
template <typename T>
T Identity(T t){return t;}
या
साथ:auto identity = [](auto a){return a;}
के साथ इस की तुलना करें
template <typename T>
struct Identity { T operator()(T a) { return a; } };
यह मेरी समझ है
लैम्बडास [], [=], आदि का उपयोग करके संदर्भ कैप्चर की अनुमति देता है, मुझे यकीन नहीं है कि यह सामान्य लैम्बडा में कैसे उपयोग/लागू किया जाएगा। क्या यह मुख्य अंतर है?
सामान्य lambdas जबकि, टेम्पलेट विशेषज्ञता संकेत दिए गए कार्य करने के लिए डाली जा सकती है, संकेत कार्य करने के लिए डाली जा सकती है।
एक साधारण वास्तविक दुनिया का उदाहरण समझने के लिए उपयोगी होगा कि कब उपयोग करना है और कब।
[संलग्न] यहां सामान्य लैम्ब्डा प्रस्ताव है: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3559.pdf
जेनेरिक लैम्ब्डा वास्तव में 'टेम्पलेट संरचना पहचान {टी ऑपरेटर() (टी ए) {रिटर्न ए; }}; 'आपके द्वारा प्रस्तुत किए गए टेम्पलेट फ़ंक्शन विकल्प से अधिक है। –
cdhowie
मुझे लगता है कि यह "कार्यों पर lanbdas का उपयोग करने के लिए" उबालता है, जिसका उत्तर दिया गया है [यहां] (http://programmers.stackexchange.com/questions/98159/what-is-the-necessity-to-go- for-lambda-functions-and-expressions-in-c) – OMGtechy
@OMGtechy: वास्तव में नहीं। जेनेरिक लैम्बडास संभावित मेटा प्रोग्रामिंग अवसरों के कई हिस्सों को उजागर करेंगे जो वर्तमान में टेम्पलेट्स के संदर्भ में संभव नहीं हैं क्योंकि वे चर (मूल्य या संदर्भ द्वारा) नहीं ले सकते हैं। इसमें जोड़ा गया है, संकलन समय पर प्रकार निर्धारण यह बेहद शक्तिशाली बना सकता है। मैं खुद को टेम्पलेटेड कक्षाओं के अंदर कुछ अनुप्रयोगों को देख रहा हूं लेकिन सवाल सामान्य लैम्बडास पर विचारों को पूल करना है। – Ram