मान लीजिए निम्न दो कार्य:सी ++: बांधों का संयोजन?
#include <iostream>
#include <cstdlib> // atoi
#include <cstring> // strcmp
#include <boost/bind.hpp>
bool match1(const char* a, const char* b) {
return (strcmp(a, b) == 0);
}
bool match2(int a, const char* b) {
return (atoi(b) == a);
}
इन कार्यों में से प्रत्येक दो तर्क लेता है, लेकिन एक प्रतिदेय उद्देश्य यह है कि (एसटीडी/बढ़ावा) bind
का उपयोग करके केवल एक तर्क लेता में तब्दील किया जा सकता है।
boost::bind(match1, "a test");
boost::bind(match2, 42);
मैं इन कि एक तर्क ले और bool
, एक प्रतिदेय उद्देश्य यह है कि दो तर्क लेता है और रिटर्न & & bool
की वापसी की तरह दो कार्यों से, प्राप्त करने में सक्षम होना चाहता हूँ: की तर्ज पर कुछ एस। तर्कों का प्रकार मनमाने ढंग से है।
पर वापस आने वाले कार्यों के लिए operator&&
की तरह कुछ।
क्या आप एक ऐसा फ़ंक्शन नहीं चाहते हैं जो एक तर्क लेता है और एक बूल देता है? मैं 'match1 (" एक परीक्षण ", एक्स) और match2 (42, एक्स)' के बराबर है? या आप वास्तव में 'match1 ("एक परीक्षण", एक्स) और& match2 (42, वाई) 'चाहते हैं? –
मुझे वास्तव में एक ऐसा फ़ंक्शन चाहिए जो दो तर्क लेता है। –