मैं टेम्पलेट्स में नया हूं इसलिए शायद यह एक छोटी सी चीज है लेकिन मैं इसे काम नहीं कर सकता। मैं कक्षा सदस्य समारोह के आंशिक विशेषज्ञता प्राप्त करने की कोशिश कर रहा हूं। सबसे छोटा कोड होगा:सी ++ टेम्पलेट आंशिक विशेषज्ञता सदस्य समारोह
template <typename T, int nValue> class Object{
private:
T m_t;
Object();
public:
Object(T t): m_t(t) {}
T Get() { return m_t; }
Object& Deform(){
m_t*=nValue;
return *this;
}
};
template <typename T>
Object<T,0>& Object<T,0>::Deform(){
this->m_t = -1;
return *this;
}
int main(){
Object<int,7> nObj(1);
nObj.Deform();
std::cout<<nObj.Get();
}
मैंने गैर-कार्य कार्यों के साथ प्रयास किया और यह ठीक काम किया। जो भी ठीक काम करता है वह सदस्य फ़ंक्शन का पूर्ण विशेषज्ञता है।
लेकिन, जब भी मैं आंशिक स्पेक के साथ प्रयास करता हूं। एक सदस्य समारोह की मैं फार्म की त्रुटि मिलती है:
PartialSpecification_MemberFu.cpp(17): error: template argument
list must match the parameter list Object<T,0>& Object<T,0>::Deform().
:-)
भी प्रासंगिक: http://stackoverflow.com/questions/1501357/template-specialization-of-particular-members –