2016-06-05 5 views
5

क्या टेम्पलेट को दो बार फिर से लिखने के बजाय एक ही टेम्पलेट में एक से अधिक फ़ंक्शन शामिल करना संभव है? जैसा अगर आप लिख रहे थे:एक ही टेम्पलेट का उपयोग कर एकाधिक फ़ंक्शन?

template <typename T> 
void A() { 
    //... 
} 

template <typename T> 
void B() { 
    //... 
} 

उन्हीं समारोह नहीं हैं, लेकिन वे एक समान टेम्पलेट (सामान्य प्रकार T उपयोग करते हुए) को साझा करें। क्या टेम्पलेट को केवल एक बार शुरू करने का कोई तरीका है?

+0

नहीं। 'डी' का उपयोग करें ... –

+0

@ करोल हॉर्वथ वाट – user6245072

+0

'टेम्पलेट क्लास' का उपयोग करने के अलावा सी ++ में ऐसा करने का कोई तरीका नहीं है, लेकिन यह हासिल करने के लिए यह बहुत स्पष्ट तरीका नहीं है। – LibertyPaul

उत्तर

4

उन्हें कक्षा टेम्पलेट के अंदर समूहित करना इसे प्राप्त करेगा।

template <class T> 
struct Functions { 
    static void A() { /*...*/ } 
    static void B() { /*...*/ } 
}; 

लेकिन, आप कार्यों के तर्क से T अनुमान करने की क्षमता खो, और बुला वाक्य रचना लंबी है:

Functions<double>::A(); 
+0

पर विकिपीडिया देखें, उन्हें स्थिर बनाया जाना चाहिए। – Borgleader

+0

@ बोर्गलीडर उन्हें वास्तव में चाहिए! सौभाग्य से, मेरी कॉफी रास्ते पर है। – Quentin

संबंधित मुद्दे