C ++ टेम्प्लेट और C # / Java जेनेरिक के बीच विभिन्न तुलनाओं से यह एक-
मुझे एक धारणा मिली कि, C ++ टेम्प्लेट को किसी प्रकार के प्रीप्रोसेसिंग (सादे पाठ प्रतिस्थापन से पहले पार्सिंग) द्वारा लागू किया जाता है, संकलन नहीं। क्योंकि C ++ टेम्प्लेट में जाँच करने का प्रकार C मैक्रोज़ जैसा दिखता है। मेरा मतलब है, अगर कुछ त्रुटियां हैं, तो वे टेम्पर्ड कोड ब्लॉक को संसाधित करने के बाद उत्पन्न कोड से त्रुटियां हैं, न कि स्वयं टेम्पलेट्स से। दूसरे शब्दों में, वे सी में मैक्रोज़ के ऊपरी संस्करण का एक प्रकार हैं।
तब मुझे इसके समर्थन में कुछ अन्य तथ्य मिले-
मैंने सोचा, यदि C ++ टेम्प्लेट प्रीप्रोसेसिंग द्वारा कार्यान्वित किए जाते हैं, तो डायनेमिक लिंकिंग (.dll) का उपयोग करते हुए समस्याएँ होंगी। और एक त्वरित googling ने इसका समर्थन किया।
एक अन्य बिंदु है, पूर्णांक स्थिरांक को तर्कों के तर्क के रूप में पारित किया जा सकता है। और यह किसी प्रकार की पुनरावृत्ति का भी समर्थन करता है। लेकिन यह पुनरावृत्ति संकलित असेंबली / मशीन कोड में नहीं मिली है। प्रत्येक पुनरावर्ती कॉल के लिए एक फ़ंक्शन उत्पन्न करके और इस प्रकार एक बड़ा लेकिन तेजी से निष्पादन योग्य बाइनरी होने से पुनरावृत्ति की बात संकलन समय में प्रबंधित की जाती है।
हालांकि सी मैक्रोज़ के विपरीत, इसमें कुछ बेहतर क्षमताएं हैं। लेकिन क्या C ++ टेम्पलेट किसी प्रकार के प्रीप्रोसेसिंग के साथ लागू नहीं किया गया है? इसे विभिन्न C ++ कंपाइलरों में कैसे लागू किया जाता है?