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

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -