C ++ 20 auto
फ़ंक्शन पैरामीटर प्रकार के लिए उपयोग करने की अनुमति देता है ।
क्या यह फ़ंक्शन पैरामीटर प्रकार के लिए auto
टेम्पलेट तर्क प्लेसहोल्डर के रूप में उपयोग करने की अनुमति देता है (समान नहीं है, लेकिन एक तरह से C ++ 17 टेम्पलेट <ऑटो> की भावना में )?
तो निम्नलिखित कोड, पूर्व C ++ 20:
template<typename First, typename Second>
void printPair(const std::pair<First, Second>& p) {
std::cout << p.first << ", " << p.second;
}
के रूप में लिखा जा सकता है:
void printPair(const std::pair<auto, auto>& p) {
std::cout << p.first << ", " << p.second;
}
यह संकलित करता है और अवधारणाओं के लिए प्रायोगिक जीसीसी कार्यान्वयन के साथ अच्छी तरह से काम करता है ।
क्या यह सी ++ 20 के साथ एक वैध वाक्यविन्यास है?
auto
सीधे टेम्पलेटेट में तब्दील हो जाता हैtypename XYZ
, जो दृढ़ता से यह संकेत देगा कि यह वैध वाक्यविन्यास है। नीट ।