मैं इस सवाल पहले से ही उत्तर दिया गया है पता है, लेकिन जब मैं जवाब के लिए देख रहा था इस सवाल के लिए, मैं यहां कुछ जवाबों की तुलना में थोड़ा अलग खोज रहा था, और मुझे लगता है कि यह हो सकता है कि ओपी क्या कह रहा था, तो यहां उम्मीद है यह किसी और की मदद करेगा। आप निम्न उपाय अपनाते हैं,
void print(int n)
{
printf("%i ", n);
}
आदेश में यह कार्य करने के लिए एक लैम्ब्डा पारित करने के लिए:
print([]{
return 3;
}());
यह कार्य करने के लिए 3 पारित करेंगे जाहिर
आप एक समारोह है कहो। एक और अधिक उपयोगी उदाहरण के लिए, विशेष रूप से ओ पी के प्रश्न से संबंधित, एक लैम्ब्डा कि अंत समारोह के लिए एक पूर्णांक एक पैरामीटर के रूप में एक पूर्णांक लेता है और रिटर्न है:
int x = 3;
auto lambdaFunction = [](int input) {
return (input + 1);
};
print(lambdaFunction(x));
यह मानते हुए है आप मान द्वारा या द्वारा उत्तीर्ण नहीं होते हैं लैम्ब्डा के संदर्भ में, जो आप सीधे कर सकते हैं:
// Pass by value
print([=]{
return (x + 1);
}());
// Pass by reference
print([&]{
return (x + 1);
}());
स्रोत
2017-06-22 03:57:39
आपको संदर्भ द्वारा लैम्ब्डा की आवश्यकता क्यों होगी? क्या आपका मतलब है 'कॉन्स्ट एंड'? –