निम्नलिखित मान्य C++ अभिव्यक्ति क्यों हैं? ये lambdasसी ++ अजीब अभिव्यक्तियों को संकलित किया गया है ठीक है
[]{}();
{}[]{};
क्या कोई उन्हें मुझे समझा सकता है?
निम्नलिखित मान्य C++ अभिव्यक्ति क्यों हैं? ये lambdasसी ++ अजीब अभिव्यक्तियों को संकलित किया गया है ठीक है
[]{}();
{}[]{};
क्या कोई उन्हें मुझे समझा सकता है?
पहला एक लैम्ब्डा है जिसमें कोई पैरामीटर सूची नहीं है और बाद में कॉल है। []{}
तो पूरी लाइन
[](){}();
दूसरे के बराबर है है ब्रेसिज़, जो परिचय और फिर तुरंत एक गुंजाइश बंद की एक जोड़ी, कोई पैरामीटर सूची के साथ एक अप्रयुक्त लैम्ब्डा परिभाषा के बाद [](){}
के बराबर है :
{
// empty scope
}
[]{}; // lambda
आप लैम्ब्डा परिभाषा वाक्य रचना में बदलाव के लिए http://en.cppreference.com/w/cpp/language/lambda देख सकते हैं।
यह एक एक लैम्ब्डा कॉल
[]{}();
यह बराबर है
[](){}();
दूसरा एक खाली गुंजाइश है, एक (अप्रयुक्त) लैम्ब्डा द्वारा पीछा किया है।
माता-पिता पैरामीटर के बिना लैम्ब्डा के लिए वैकल्पिक हैं।
हां ये भेड़ के बच्चे हैं। – ulidtko