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

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

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

Can C   Deduce Template Types from Function Return Types?

सी में फ़ंक्शन रिटर्न प्रकार के आधार पर टेम्पलेट कटौती

सी में, जेनेरिक को तुरंत चालू करने वाले कोड को सरल बनाने के लिए टेम्पलेट कटौती का उपयोग करना वांछनीय हो सकता है फ़ंक्शन के तर्कों के डेटा प्रकारों के आधार पर फ़ंक्शन। निम्नलिखित उदाहरण पर विचार करें:

GCPtr ptr1 = GC::Allocate();
GCPtr ptr2 = GC::Allocate();

जेनेरिक प्रकार के मापदंडों को स्पष्ट रूप से निर्दिष्ट करने के बजाय, लक्ष्य GC::Alocate() फ़ंक्शन के रिटर्न प्रकार का उपयोग करके इस कटौती को प्राप्त करना है। हालाँकि, C, रिटर्न प्रकार के आधार पर प्रकार की कटौती की अनुमति नहीं देता है।

class GC
{
public:
    template
    static GCPtr Allocate();
};

रिटर्न प्रकार सामान्य होने के बावजूद, कंपाइलर को GC::Alocate() फ़ंक्शन को इंस्टेंट करते समय टेम्पलेट प्रकार के पैरामीटर और के स्पष्ट विनिर्देश की आवश्यकता होती है।

इस सीमा को कम करने के लिए, एक सहायक फ़ंक्शन पेश किया जा सकता है:

template 
void Allocate(GCPtr& p) {
    p = GC::Allocate();
}

इस फ़ंक्शन का उपयोग करके, मूल लक्ष्य निम्नानुसार प्राप्त किया जा सकता है:

GCPtr p;
Allocate(p);

auto p = GC::Alocate(); //p GCPtr

प्रकार का है

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

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

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

Copyright© 2022 湘ICP备2022001581号-3