मानक पुस्तकालय जेनेरिक एल्गोरिदम के अनुमानित और गैर-अनुमानित संस्करणों को अलग करता है। उदाहरण के लिए, std::sort()
लगता है:जेनेरिक एल्गोरिदम के लिए अनुमानित और गैर-अनुमानित संस्करणों को अलग क्यों करें?
template< class RandomIt >
void sort(RandomIt first, RandomIt last);
template< class RandomIt, class Compare >
void sort(RandomIt first, RandomIt last, Compare comp);
सिर्फ निम्नलिखित लिखित रूप में किसी भी समस्या है?
template< class RandomIt, class Compare = std::less<void>>
void sort(RandomIt first, RandomIt last, Compare comp = Compare{});
सी ++ 03 में फ़ंक्शन टेम्पलेट्स के लिए डिफ़ॉल्ट टेम्पलेट तर्क जैसी कोई चीज़ नहीं थी। –
@ टी.सी. तो, मान लें कि हम पूरी चीज को फिर से डिजाइन करते हैं, क्या दूसरे फॉर्म को प्राथमिकता दी जानी चाहिए? – Lingxi
@ टी.सी. मुझे विश्वास है कि डिफ़ॉल्ट टेम्पलेट तर्क चीज वास्तव में एक जवाब है। – Angew