दिलचस्प पोस्ट
एंड्रॉइड: कैमरा इन्टेंट फोन करने के बाद नष्ट हो रहा है कचरा संग्रह के लिए स्थिर फ़ील्ड खुली हैं? कोड में WPF छवि स्रोत सेट करना सी में, मुझे एक टेक्स्ट फ़ाइल कैसे पढ़नी चाहिए और सभी स्ट्रिंग प्रिंट करना चाहिए setInterval और कैसे स्पष्ट अंतराल का उपयोग करने के लिए कैसे एक SearchView के साथ एक RecyclerView फ़िल्टर करने के लिए मर्ज सॉर्ट एल्गोरिथ्म का उपयोग करके इन्हें कैसे सॉर्ट करना है? जावास्क्रिप्ट दिनांक ऑब्जेक्ट में 30 मिनट कैसे जोड़ सकते हैं? कैसे सी # में iterator के साथ एक पाठ फ़ाइल को पढ़ने के लिए Windows अनुप्रयोग में कंसोल दिखाएं? एक सूची में निरंतर संख्या के समूह को पहचानें स्रोत का उपयोग कैसे करें: फ़ंक्शन () … और AJAX में JQuery UI स्वत: पूर्ण मेरे कुकीज़ क्यों नहीं सेट हैं? संदर्भ के आधार पर डेटा अद्यतन योग्य नाम (डीटी) क्यों करता है, भले ही मैं किसी अन्य चर पर असाइन करता हूं? कैसे MySQL में AUTO_INCREMENT रीसेट करें?

अस्थायी लाइफटाइम

निम्नलिखित कोड ठीक काम करता है, लेकिन यह सही कोड क्यों है? अस्थायी के "c_str ()" सूचक क्यों foo () द्वारा वैध है? मैंने सोचा, यह अस्थायी पहले से ही नष्ट हो गया है जब बार () दर्ज किया जाता है – लेकिन ऐसा लगता नहीं है। तो, अब मुझे लगता है कि कॉल टू बार () के बाद foo () द्वारा अस्थायी रूप से लौटा दिया जाएगा नष्ट हो जाएगा – यह सही है? और क्यों?

std::string foo() { std::string out = something...; return out; } void bar( const char* ccp ) { // do something with the string.. } bar( foo().c_str() ); 

वेब के समाधान से एकत्रित समाधान "अस्थायी लाइफटाइम"

$ 12.2 / 3- "अस्थाई वस्तुओं को पूर्ण-अभिव्यक्ति (1.9) के मूल्यांकन में अंतिम चरण के रूप में नष्ट किया जाता है (लीक्सिस्टिक) जिसमें वे बनाये गये बिंदु होते हैं। यह तब भी सच है जब यह मूल्यांकन एक अपवाद फेंकने में समाप्त होता है।"

फ़ू () द्वारा लौटा अस्थायी जीवनकाल पूर्ण अभिव्यक्ति के अंत तक फैली हुई है जहां इसे बनाया गया है यानी फ़ंक्शन कॉल 'बार' के अंत तक।

2 संपादित करें:

$ 1.9 / 12- "एक पूर्ण अभिव्यक्ति एक अभिव्यक्ति है जो किसी अन्य अभिव्यक्ति का एक subexpression नहीं है। अगर एक भाषा का निर्माण एक समारोह के एक निहित कॉल का निर्माण करने के लिए परिभाषित किया गया है, तो भाषा के निर्माण का उपयोग एक अभिव्यक्ति माना जाता है इस परिभाषा के प्रयोजनों। "

एक अस्थायी ऑब्जेक्ट नष्ट हो जाता है जब पूर्ण अभिव्यक्ति है जिसमें मौलिक रूप से रैवल्यू होता है जिसका मूल्यांकन बना है कि अस्थायी ऑब्जेक्ट पूरी तरह से मूल्यांकन किया गया है। मुझे एएससीआईआई कला के साथ प्रदर्शन करना चाहिए:

 ____________________ full-expression ranges from 'b' to last ')' bar( foo().c_str() ); ^^^^^ ^ | | birth funeral