सी 11 में फंक्शन अलियासिंग को समझना
सी में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के दायरे में, उपयोग निर्देश का उपयोग करके कक्षाओं को उपनाम देने की क्षमता कोड पठनीयता और रख-रखाव को सरल बनाने के लिए यह एक सामान्य अभ्यास है। हालाँकि, जब अलियासिंग फ़ंक्शंस की बात आती है, तो कक्षाओं के लिए सिंटैक्स को सीधे लागू नहीं किया जा सकता है।
आइए एक परिदृश्य पर विचार करें जहां आपके पास नेमस्पेस बार में f नामक फ़ंक्शन परिभाषित है। परंपरागत रूप से, आप कक्षाओं में काम करने के लिए समान सिंटैक्स की अपेक्षा करेंगे:
using g = bar::f; // Error: 'f' in namespace 'bar' does not name a type
दुर्भाग्य से, इस दृष्टिकोण के परिणामस्वरूप त्रुटि होती है क्योंकि फ़ंक्शन स्वाभाविक रूप से C में प्रकार नहीं होते हैं। तो, आप फ़ंक्शन एलियासिंग को सुरुचिपूर्ण ढंग से कैसे प्राप्त कर सकते हैं? सही अग्रेषण का उपयोग करके, आप एक उपनाम फ़ंक्शन को परिभाषित कर सकते हैं जो तर्कों की मनमानी संख्या को स्वीकार करता है और उन्हें मूल फ़ंक्शन पर अग्रेषित करता है:
टेम्पलेट
ऑटो g(Args&&... args) -> decltype(f(std::forward
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3