templates - Define a specific case for a templated function (C++) -
तो मेरे .h फ़ाइल में मेरे पास
टेम्पलेट & lt; class T & gt; शून्य getValue (T * val, int तत्व, int सूचकांक);
और फिर मेरे। सीसी फ़ाइल में मेरे पास एक फ़ंक्शन है:
टेम्पलेट & lt; class T & gt; Void RParser :: getValue (T * val, int element, int index) { मेरे पास यह स्पष्ट रूप से तत्काल है:
टेम्पलेट void RParser :: GetValue & lt; char & gt; (चार * val, int तत्व, std :: string subrecName); टेम्पलेट void RParser :: getValue & lt; लंबे समय तक & gt; (लंबे समय तक * val, int तत्व, std :: string subrecName); टेम्पलेट void RParser :: getValue & lt; float & gt; (फ्लोट * val, int तत्व, std :: string subrecName); ...
यह काम करता है, लेकिन मैं std :: string
के लिए एक पूर्ण भिन्न कार्य करना चाहूंगा: मैंने कोशिश की:
टेम्प्लेट & lt; class std :: string & gt; Void RParser :: getValue & lt; std :: स्ट्रिंग & gt; (std :: string * val, int element, int index) { लेकिन यह काम नहीं करता।
कोई सुझाव बहुत सराहना की जाएगी,
धन्यवाद, जोश
यदि आप चाहते हैं टेम्पलेट के विशेषज्ञ होने के लिए, तब वाक्यविन्यास है:
टेम्पलेट & lt; & gt; Void RParser :: getValue & lt; std :: स्ट्रिंग & gt; (std :: string * val, int element, int index) {}
लेकिन जैसा कि नील का जवाब है, आपको इसकी आवश्यकता नहीं है इस समारोह टेम्पलेट विशेषज्ञ; एक अधिभार कार्य करेगा:
void RParser :: getValue (std :: string * val, int तत्व, int index) {}
Comments
Post a Comment