template <typename T>
T go(T a, T *b){ T *t; return *t;}
int main() {
const int x = 10;
go(x, &x);
return 0;
}
संकलक त्रुटि देता है?खाका तर्क कटौती विफलता जबकि स्थिरांक प्रकार का पता गुजर
इस संकलन त्रुटि को ठीक करने के लिए, मैं go<const int>(x, &x);
तर्कों के प्रकार को निर्दिष्ट करके संकलक कटौती प्रक्रिया को ओवरराइड करता हूं, लेकिन फिर मुझे ऐसा करने की आवश्यकता क्यों है?
धन्यवाद, कि दिलचस्प है, लेकिन आपको लगता है कि चाल वह आंतरिक रूप से करता है पर विचार एक अच्छा प्रोग्रामिंग अभ्यास किया जाएगा है। –
@ सौरवसाहू एक बार जब आप टेम्पलेट्स के साथ अनौपचारिक चीजें करना शुरू कर देते हैं, तो आपको लगता है कि ऐसा कोई 'गैर-प्रेरित' होना आवश्यक है। और एक बार जब आप इसे प्राप्त कर लेंगे, तो आप इसका भी उपयोग कर सकते हैं। चाहे यह इस विशेष मामले में एक अच्छा विचार हो, या क्या चीजें अलग-अलग की जा सकती हैं, वास्तव में आपके असली उपयोग मामले में वास्तव में क्या होता है, इस पर निर्भर करता है। – Angew