std::forward का उपयोग करना: परिशुद्धता के साथ तर्कों को अग्रेषित करना
सी में कार्यों के लिए तर्क पारित करते समय, उपयोग किए गए संदर्भ संशोधक पर विचार करना महत्वपूर्ण है फ़ंक्शन मापदंडों को परिभाषित करने के लिए। std::forward का उपयोग तर्क संदर्भों को संभालने में लचीलापन प्रदान करता है।
std::forward के लाभ
C 0x में, std::forward का उपयोग स्पष्ट रूप से किया जाता है तर्कों को किसी फ़ंक्शन में ले जाएं। यह तब फायदेमंद होता है जब फ़ंक्शन सार्वभौमिक संदर्भ (टी&&) स्वीकार करता है और आप मूल संदर्भ प्रकार को संरक्षित करना चाहते हैं, चाहे वह एक अंतराल संदर्भ हो या एक प्रतिद्वंद्विता संदर्भ हो।
&& का उपयोग करना पैरामीटर घोषणा में
का उपयोग && पैरामीटर घोषणाओं में इंगित करता है कि केवल प्रतिद्वंद्विता संदर्भों की अनुमति है। हालाँकि, इसका मतलब यह नहीं है कि यह && के साथ कार्य करता है। पैरामीटर्स को केवल अस्थायी तौर पर ही बुलाया जा सकता है। दिए गए उदाहरण में, foo को किसी भी प्रकार के तर्क के साथ बुलाया जा सकता है, जिसमें मान भी शामिल है। टेम्पलेट के भीतर किसी अन्य फ़ंक्शन में तर्क पास करते समय std::forward का उपयोग करना। यह सुनिश्चित करता है कि सही प्रकार का तर्क नेस्टेड फ़ंक्शन पर अग्रेषित किया गया है, भले ही वह अंतराल या प्रतिद्वंद्विता हो। उदाहरण के लिए:
टेम्पलेट
template
void doSomething(Params... args) {
doSomethingElse(args...);
}
तर्कों को एकाधिक बार अग्रेषित करना
template
void doSomething(Params&&... args) {
doSomethingElse(std::forward(args)...);
}
template
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3