मेरे पास कुछ लैम्ब्डा फ़ंक्शंस हैं जिन्हें मैं बूस्ट :: बाइंड या std :: बाइंड का उपयोग करके बांधना चाहता हूं। (परवाह मत करो जो एक, जब तक यह काम करता है।) दुर्भाग्य से उन दोनों ने मुझे अलग संकलक मिली त्रुटियाँ दे:बूस्ट के साथ लैम्ब्डा फ़ंक्शंस का उपयोग कैसे करें :: bind/std :: VC++ 2010 में बाध्य करें?
auto f = [](){ cout<<"f()"<<endl; };
auto f2 = [](int x){ cout<<"f2() x="<<x<<endl; };
std::bind(f)(); //ok
std::bind(f2, 13)(); //error C2903: 'result' : symbol is neither a class template nor a function template
boost::bind(f)(); //error C2039: 'result_type' : is not a member of '`anonymous-namespace'::<lambda0>'
boost::bind(f2, 13)(); //error C2039: 'result_type' : is not a member of '`anonymous-namespace'::<lambda1>'
तो, यह के लिए सबसे आसान तरीके को क्या है?
आप बाइंड का उपयोग क्यों करना चाहते हैं? क्या आप सिर्फ एफ() या एफ 2 (1) नहीं कह सकते हैं? – Jagannath
@ जगन्नाथ: यह निश्चित रूप से एक साधारण उदाहरण था, लेकिन हकीकत में मैं बाध्य परिणाम को फ़ंक्शन ऑब्जेक्ट में स्टोर करना चाहता हूं। – Timo
आप बाइंड का उपयोग क्यों करना चाहते हैं? मैंने सोचा कि सी ++ 0 एक्स बंद हो गया है? –