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

टेम्पलेट फ़ंक्शंस को C++ में टेम्पलेट तर्क के रूप में कैसे उपयोग किया जा सकता है?

2024-11-13 को प्रकाशित
ब्राउज़ करें:568

How Can Template Functions Be Used as Template Arguments in C  ?

टेम्पलेट तर्क के रूप में टेम्पलेट फ़ंक्शंस

समस्या:

सी में, एक टेम्पलेट फ़ंक्शन को कोड का पुन: उपयोग प्राप्त करने के लिए टेम्पलेट तर्क के रूप में कैसे उपयोग किया जा सकता है सामान्य कार्यक्षमता को बनाए रखना, विशेष रूप से जब शामिल कार्य स्वयं भी टेम्पलेट हैं? प्राथमिक अवधारणा यह है कि पूर्व तात्कालिकता की आवश्यकता के कारण टेम्प्लेट पैरामीटर सीधे टेम्प्लेट टेम्प्लेट फ़ंक्शंस को शामिल नहीं कर सकते हैं। वर्कअराउंड में टेम्पलेट फ़ंक्शन को इनकैप्सुलेट करने के लिए डमी संरचनाओं का उपयोग करना शामिल है:

कोड उदाहरण:

टेम्पलेट संरचना ए { स्थिर शून्य foo(T = T()) {} }; टेम्प्लेट संरचना बी { स्थिर शून्य foo(T = T()) {} }; स्ट्रक्चर समओबज {}; संरचना कुछ अन्यऑब्जेक्ट {}; टेम्प्लेट क्लास टी> शून्य फ़ंक्शन() { T::foo(); T::foo(); } मुख्य प्रवेश बिंदु() { फ़ंक्शन(); फ़ंक्शन(); }

इस उदाहरण में, संरचनाएं ए और बी फू विधि के लिए टेम्पलेट फ़ंक्शन लागू करती हैं। फ़ंक्शन टेम्प्लेट एक टेम्प्लेट टेम्प्लेट पैरामीटर लेता है, जो हमें ए और बी टेम्प्लेट को तर्क के रूप में पारित करने की अनुमति देता है। फ़ंक्शन के भीतर, डमी संरचनाओं के विशिष्ट उदाहरण बनाए जाते हैं, जो विभिन्न पैरामीटर प्रकारों के साथ foo के आह्वान को सक्षम करते हैं।

फायदे:
template 
struct a {
    static void foo(T = T()) {}
};

template 
struct b {
    static void foo(T = T()) {}
};

struct SomeObj {};
struct SomeOtherObj {};

template 

कोड पुन: प्रयोज्य:

यह दृष्टिकोण एक ही टेम्पलेट में समान कार्यक्षमता को समेकित करके कोड डुप्लिकेशन से बचा जाता है। &&&]

कंपाइलर अनुकूलन:

टेम्प्लेट इनलाइन फ़ंक्शन विस्तार जैसे कंपाइलर अनुकूलन को सक्षम कर सकते हैं, जिसके परिणामस्वरूप प्रदर्शन में सुधार होता है।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3