हमारे पास एक ऐसा कार्य था जो अपने आप में एक गैर-कैप्चरिंग लैम्ब्डा आंतरिक का उपयोग करता था, जैसे:
void foo() {
auto bar = [](int a, int b){ return a + b; }
// code using bar(x,y) a bunch of times
}
अब लैम्ब्डा द्वारा लागू की गई कार्यक्षमता कहीं और आवश्यक हो गई, इसलिए मैं लैम्ब्डा foo()
को वैश्विक / नेमस्पेस दायरे से बाहर करने जा रहा हूं । मैं या तो इसे लंबोदर के रूप में छोड़ सकता हूं, इसे कॉपी-पेस्ट विकल्प बना सकता हूं, या इसे एक उचित फ़ंक्शन में बदल सकता हूं:
auto bar = [](int a, int b){ return a + b; } // option 1
int bar(int a, int b){ return a + b; } // option 2
void foo() {
// code using bar(x,y) a bunch of times
}
इसे एक उचित कार्य में बदलना तुच्छ है, लेकिन यह मुझे आश्चर्यचकित करता है कि क्या कोई कारण है कि इसे लंबोदर के रूप में नहीं छोड़ा जाए? क्या "नियमित" वैश्विक कार्यों के बजाय हर जगह केवल लैम्ब्डा का उपयोग करने का कोई कारण नहीं है?