bind - C++ binding question -
क्या boost :: bind काम std :: fill ?
मैंने निम्नलिखित की कोशिश की, लेकिन यह काम नहीं करती:
boost :: bind (std :: fill) , X.begin (), x.end (), 1);
समस्या यह है कि std :: fill एक है टेम्पलेट फ़ंक्शन टेम्पलेट फ़ंक्शंस वास्तव में मौजूद नहीं हैं, ऐसा कहने के लिए, जब तक वे तत्काल नहीं हो जाते आप std :: fill का पता नहीं ले सकते क्योंकि यह वास्तव में अस्तित्व में नहीं है; यह समान फ़ंक्शंस के लिए केवल एक टेम्पलेट है जो विभिन्न प्रकारों का उपयोग करते हैं यदि आप टेम्प्लेट पैरामीटर प्रदान करते हैं, तो यह टेम्पलेट के एक विशिष्ट तत्काल संदर्भ देगा, और सब कुछ ठीक हो जाएगा।
std :: fill फ़ंक्शन के दो टेम्प्लेट पैरामीटर हैं: < मजबूत> फ़ॉरवर्ड इटरेटर टाइप , जो कंटेनर के लिए एक इटरेटर का प्रकार है, और डेटाटाइप , जो कि कंटेनर का प्रकार है आपको दोनों को प्रदान करने की आवश्यकता है, इसलिए संकलक आपको std :: fill टेम्प्लेट का उपयोग करना चाहता है।
std :: vector & lt; int & gt; एक्स (10); बढ़ावा :: बाइंड (std :: fill & lt; std :: vector & lt; int & gt; :: iterator, int & gt ;, x.begin (), x.end (), 1);
Comments
Post a Comment