मुझे केवल कुछ आदिम प्रकारों की अनुमति देने के लिए, टेम्पलेट वर्ग के अंदर एक विधि को विशेषज्ञता देने की आवश्यकता है (चाहते हैं)। (यह this का डुप्लिकेट सवाल नहीं है)टेम्पलेट वर्ग के अंदर टेम्पलेट विधि विशेषज्ञता
खैर मैं इस वर्ग मिल गया है:
template<typename TYPE, size_t NB>
class X
{
public:
template<typename arg_type>
X& get(const arg_type var);
}
मैं arg_type विशेषज्ञ केवल अहस्ताक्षरित पूर्णांकों, कुछ इस तरह की अनुमति देने के लिए करना चाहते हैं:
template<typename TYPE, size_t NB> template<unsigned long> X& X::get(const unsigned long val);
लेकिन यकीन है कि, ऊपर काम नहीं करता है, न तो msvc2011 पर और न ही जीसीसी
अधिक विशिष्ट करने के लिए, मैं क्या करने की कोशिश टेम्प्लेटेड के आधार पर एक कोड लिखने के लिए है उपरोक्त टाइप करें, और विशेषज्ञता लिखें ताकि इस कक्षा एक्स का उपयोग करने वाले किसी भी व्यक्ति ने इस विधि का उपयोग किसी अन्य चीज़ के साथ नहीं किया हो।
क्या यह भी संभव है? और यदि यह है, तो ऐसा करना बुरा है?
अग्रिम धन्यवाद, jav974
आपको क्यों लगता है कि नेस्टेड टेम्पलेट होना सबसे अच्छा तरीका है? जबकि आप यह काम कर सकते हैं, वहां क्लीनर सरल समाधान हो सकते हैं, जैसे नेस्टेड टेम्पलेट नहीं और केवल गैर-टेम्पलेट ओवरलोड ... –