"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ में गैर-स्थिर चर का उपयोग टेम्पलेट तर्क के रूप में क्यों नहीं किया जा सकता?

C++ में गैर-स्थिर चर का उपयोग टेम्पलेट तर्क के रूप में क्यों नहीं किया जा सकता?

2025-01-12 को प्रकाशित
ब्राउज़ करें:812

Why Can\'t Non-Constant Variables Be Used as Template Arguments in C  ?

एक गैर-स्थिर चर को टेम्पलेट तर्क के रूप में क्यों पारित नहीं किया जा सकता?

सी में, टेम्पलेट तर्क स्थिर अभिव्यक्ति होने चाहिए। इसका मतलब यह है कि उनके मूल्यों को संकलन समय पर जाना जाना चाहिए। कंपाइलर इस संदर्भ में एक गैर-स्थिर चर का मूल्यांकन नहीं कर सकता है।

कोड पर विचार करें:

template 
void modify(){}

टेम्पलेट तर्क के रूप में एक गैर-स्थिर चर को पारित करने के लिए, हम लिख सकते हैं:

for(int i = 0; i ();
}

हालाँकि, यह एक त्रुटि उत्पन्न करता है क्योंकि कंपाइलर कंपाइल समय पर i का मान निर्धारित नहीं कर सकता है। लूप बॉडी कई बार निष्पादित हो सकती है, जिससे i का मान बदल जाता है। एक पुनरावृत्तीय कॉल:

#include टेम्पलेट शून्य संशोधन() { std::cout " शून्य संशोधन() { std::cout " शून्य संशोधन() { std::cout " (); } मुख्य प्रवेश बिंदु() { संशोधित(); ) यहां एक सरलीकृत उदाहरण दिया गया है:

#include 

template
void modify() { std::cout " 
void modify() { std::cout " 
void modify() {
    std::cout " ();
}

int main() {
    modify();
}
इस उदाहरण में, callModify एक पैरामीटर N लेता है जो एक टुपल के आकार का होता है जिसमें i के लिए मानों की वांछित सीमा होती है। निर्दिष्ट आकार एन तक संशोधित करने के लिए कॉल उत्पन्न करने के लिए फ़ंक्शन एक पुनरावर्ती मेटाप्रोग्राम का उपयोग करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3