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

## **क्या किसी अस्थायी संदर्भ को किसी अस्थायी उप-वस्तु से बांधने से उसका जीवनकाल बढ़ जाता है? जीसीसी और क्लैंग की एक कहानी**

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

##  **Does Binding a Constant Reference to a Sub-Object of a Temporary Extend Its Lifetime? A Tale of GCC and Clang**

एक अस्थायी उप-वस्तु के लिए एक निरंतर संदर्भ को बांधना

मानक व्यवहार

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

क्लैंग (संस्करण एक्स):
    अस्थायी पी2डी उदाहरण के जीवनकाल को उसके जीवनकाल तक बढ़ाता है। एक्स संदर्भ, मुख्य में प्रिंटफ के बाद डिस्ट्रक्टर को कॉल करना। एक xमान. इसका तात्पर्य यह है कि किसी अस्थायी के ऐसे उप-वस्तु के संदर्भ को बांधने से अस्थायी के जीवनकाल का विस्तार नहीं होना चाहिए।
  • हालांकि, दिए गए उदाहरण में, दोनों कंपाइलर केंद्र().x को एक प्रचलन के रूप में मानते हैं। स्केलर सबऑब्जेक्ट्स का उपयोग करते समय जीसीसी जीवनकाल का विस्तार नहीं करता है क्योंकि वे [dcl.init.ref]/(5.2.1.1) द्वारा कवर नहीं होते हैं। इसलिए, अस्थायी वस्तु को जल्दी नष्ट किया जा सकता है। .E2 एक अस्थायी अभिव्यक्ति है. चूंकि इस परिभाषा के अनुसार केंद्र() एक अस्थायी अभिव्यक्ति है, इसलिए [class.temporary] /5 में संशोधित शब्दांकन लागू होता है। यह स्पष्ट रूप से बताता है कि संबंधित अस्थायी वस्तु संदर्भ के जीवनकाल तक बनी रहती है। &&&]सी मानक में प्रस्तावित संशोधनों को अपनाए जाने के बाद जीसीसी और क्लैंग दोनों में वर्तमान व्यवहार में बदलाव की उम्मीद है।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3