कुछ समय मैं की तरह दो टेम्प्लेट लिखना चाहते हैं:क्यों सी ++ टेम्पलेट ओवरलोडिंग की अनुमति नहीं देता है?
template <typename Type1>
class A{
...
};
template <typename Type1, typename Type2>
class A{
...
};
लेकिन ऐसा लगता है कि यह दो टेम्पलेट्स एक ही नाम साझा लेकिन अलग-अलग पैरामीटर के लिए गैर कानूनी है। मुझे इसे A_1
, A_2
नाम देना होगा। मुझे लगता है कि यह उपयोगी हो सकता है अगर मैं इसे विशेष रूप से फंक्शंस को लागू करते समय कर सकता हूं।
क्यों सी ++ इसकी अनुमति नहीं देता है? क्या कुछ परिस्थितियों में इसे लागू करना या अस्पष्टता करना मुश्किल है? क्या यह सी ++ के बाद के संस्करण पर समर्थित होगा?
इसी कारण से सी ++ एक ही नाम के साथ दो वर्गों की अनुमति नहीं देता है। – Jack
सी ++ 11 वैरैडिक टेम्पलेट्स का उपयोग करें http://en.wikipedia.org/wiki/Variadic_template – higuaro
आप शायद इसे डिफ़ॉल्ट टेम्पलेट तर्कों के साथ अनुमानित कर सकते हैं। –