दिलचस्प पोस्ट
WCF 3.0 में क्लाइंट आईपी एड्रेस प्राप्त करना Scanf () का उपयोग करते हुए एक लाइन को पढ़ना अच्छा नहीं है? DLLexport के साथ DLL से फ़ंक्शन निर्यात करना नंबरों की एक सरणी में याद आ रही संख्या ढूंढने का सबसे तेज़ तरीका क्यों "$ ()। तैयार (हैंडलर)" की सिफारिश नहीं की जाती है? उपयोगकर्ता के समय क्षेत्र कैसे प्राप्त करें? हमें रेडिक्स का उपयोग करने की आवश्यकता क्यों है? मैं ऑब्जेक्ट को किसी सरणी में कैसे रूपांतरित कर सकता हूं? पोर्न साइटें मेरे Google Analytics डेटा में क्यों दिख रही हैं? एक पायथन वर्ग के __dict __.__ dict__ विशेषता क्या है? 2-आयामी सरणी के आधार पर एक WPF ग्रिड को कैसे पॉप्युलेट करना है प्रोग्रामिंग को निर्धारित करने के लिए कि क्या कोई विशेष प्रक्रिया 32-बिट या 64-बिट है क्या ये JSON परिणामों में फ़ंक्शन को परिभाषित करने के लिए मान्य है? मैं Django में एक स्लग कैसे बनाऊं? आईएस 7.5 पर एएसपी.नेट एमवीसी 2 वेब ऐप नहीं चला सकते

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

निम्नलिखित कोड ठीक काम करता है, लेकिन यह सही कोड क्यों है? अस्थायी के "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