2013-06-25 4 views
9

मान लें कि मैं एक टेम्पलेट घोषित करता हूं लेकिन इसे कभी भी C++ में संदर्भित नहीं करता हूं। क्या संकलक निष्पादन योग्य में इसके साथ कुछ भी करता है? क्या यह किसी भी प्रक्रिया मेमोरी लेता है?क्या सी ++ टेम्पलेट स्मृति का उपयोग करता है यदि इसे कभी संदर्भित नहीं किया जाता है?

+3

संख्या (15characters) – user7116

उत्तर

13

नहीं, फ़ंक्शन टेम्पलेट के लिए कोई कोड नहीं बनाया जाएगा जो कभी भी तत्काल नहीं होता है। साथ ही, क्लास टेम्पलेट के गैर-टेम्पलेट सदस्य फ़ंक्शन के लिए कोई कोड नहीं बनाया जाएगा जिसे कभी नहीं कहा जाता है।

विशेष रूप से, आपके निष्पादन योग्य का आकार कोई बड़ा नहीं होगा, न ही कोई रन-टाइम ओवरहेड होगा।

+0

(जब तक आप स्पष्ट रूप से कक्षा टेम्पलेट को तुरंत चालू नहीं करते) – aschepler

4

नहीं, ऐसा नहीं है।

टेम्पलेट कक्षाएं और कार्य वास्तविक कक्षाएं या कार्य नहीं हैं: वे कुछ प्रकार के वर्गों और कार्यों को उत्पन्न करने के लिए संकलक के लिए निर्देश हैं। जब आप टेम्पलेट का संदर्भ देते हैं, तो संकलक, टेम्पलेट का प्रत्येक अलग पैरामीटरकरण के लिए, स्रोत कोड उत्पन्न करने के तरीके को समझने के लिए टेम्पलेट का उपयोग करता है, और जेनरेट कोड को संकलित करता है।

टेम्पलेट का उपयोग करने का एकमात्र ओवरहेड थोड़ा अतिरिक्त संकलन समय है, 1 9 80 के दशक के बाद किसी भी कंप्यूटर के लिए कोई बड़ा सौदा नहीं किया गया है।

+0

ठीक है धन्यवाद जो समझ में आता है – Iowa15

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

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