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

क्या C ++ 11 लैम्ब्डा कैप्चर संदर्भ ट्रिगर अपरिभाषित व्यवहार?

2025-04-30 पर पोस्ट किया गया
ब्राउज़ करें:763

] हालांकि, कैप्चर की विधि यह निर्धारित करती है कि क्या चर संदर्भ या मूल्य द्वारा एक्सेस किया गया है या नहीं। निम्नलिखित कोड पर विचार करें:

Can C  11 Lambdas Capture References Without Invoking Undefined Behavior?

#में शामिल हैं #include std :: function make_function (int & x) { वापसी [&] {std :: cout यह कोड [&] सिंटैक्स का उपयोग करके संदर्भ द्वारा चर x को कैप्चर करता है। यह सवाल उठता है कि क्या यह कार्यक्रम अपरिभाषित व्यवहार को आमंत्रित किए बिना आउटपुट 5 की गारंटी देता है। अंतर्निहित मानक शब्दांकन की जांच करने से पहले, यह ध्यान रखना महत्वपूर्ण है कि यह कोड सी समिति द्वारा अभिप्रेत के रूप में कार्य करता है। हालाँकि, C 11 मानक का प्रारंभिक शब्द इस मामले पर स्पष्ट नहीं था, जिससे CWG अंक 2011 को स्पष्टीकरण प्रदान करने के लिए उठाया गया। इस समस्या को सी मानक के चल रहे विकास में संबोधित किया जा रहा है। संदर्भ द्वारा कैप्चर की गई संस्थाओं का उल्लेख करते हुए आईडी-व्यक्तियों को अकेला छोड़ दिया जाता है और उसी इकाई को निरूपित करना जारी रखा जाता है जो उन्होंने संलग्न दायरे में निरूपित किया होगा। इसलिए, लैम्ब्डा अभिव्यक्ति में संदर्भ x मुख्य फ़ंक्शन में घोषित मूल चर को संदर्भित करता है। हालांकि, ऐसे सीमित परिदृश्य हैं जिनमें एक संदर्भ को उसके जीवनकाल के बाहर संदर्भित किया जा सकता है। आम तौर पर, एक संदर्भ या तो दायरे में घोषित किया जाता है या एक वर्ग सदस्य होता है, जिस स्थिति में वर्ग अपने जीवनकाल के भीतर होना चाहिए। इस खामियों को लैम्ब्डा अभिव्यक्तियों में संदर्भ द्वारा संदर्भों को कैप्चर करने की अनुमति दी गई थी। इस मुद्दे के संकल्प ने अनजाने में संदर्भों के संदर्भ में लैम्ब्डा कैप्चर के लिए विनिर्देश को प्रभावित किया। हालांकि, यह उम्मीद की जाती है कि यह प्रतिगमन C 17 की रिहाई से पहले तय हो जाएगा।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3