दिलचस्प पोस्ट
फ़ंक्शन के भीतर डेटा-टूटेबल बाय-संदर्भ में नए कॉलम जोड़ना हमेशा कार्य नहीं करता है माइक्रोसॉफ्ट वर्ड में मौजूदा बाध्यकारी बाध्यकारी प्रयोग का उपयोग कैसे करें एचटीएमएल फॉर्म केवल पढ़ने का चयन करें टैग / इनपुट स्थिर bower_components सेवा करने के लिए नोड को कॉन्फ़िगर करें? java.util.zip – डायरेक्टरी संरचना का पुन: निर्माण करना बैक बटन का उपयोग रोकें (IE में) जावा में स्ट्रिंग्स को प्रारूपित करने के तरीके PHP के साथ विश्वसनीय उपयोगकर्ता ब्राउज़र का पता लगाना आर द्वारा पता नहीं किया जा रहा Rtools क्यों करता है ('0'? 'ए': 'बी') ('0' == सच? 'ए': 'बी') से अलग व्यवहार करते हैं मैं एसवीएन में सभी असत्यित फ़ाइलों को 'svn add' कैसे करूं? MSBuild के माध्यम से MSDeploy के लिए मान्य पैरामीटर संग्रहीत कार्यविधि जो डेटा को सीएसवी फ़ाइलों में निर्यात करती है केवल एक फ़ाइल में निर्यात करती है 4.5 में कॉलरमेलबार नाम विशेषता है "नकली हो"? IList <टी> पर द्विआधारी खोज कैसे करें?

संदर्भ के लिए अस्थायी ऑब्जेक्ट और बाइंडिंग रिटर्निंग

संभव डुप्लिकेट:
क्या एक संदर्भ एक अस्थायी जीवन को लम्बा खींचता है?

मेरा संकलक संदर्भ के लिए अस्थायी असाइन करने के बारे में शिकायत नहीं करता है:

string foo() { return string("123"); }; int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; } 

क्यूं कर? मैंने सोचा था कि foo से लौटे स्ट्रिंग अस्थायी है और वैल उस ऑब्जेक्ट को इंगित कर सकती है जो जीवन भर समाप्त हो गया है। क्या सी ++ मानक यह अनुमति देता है और लौटा हुआ ऑब्जेक्ट का जीवनकाल बढ़ाता है?

Solutions Collecting From Web of "संदर्भ के लिए अस्थायी ऑब्जेक्ट और बाइंडिंग रिटर्निंग"

यह एक C ++ सुविधा है कोड वैध है और वास्तव में ऐसा करने के लिए क्या प्रतीत होता है।

आम तौर पर, एक अस्थायी ऑब्जेक्ट पूरी अभिव्यक्ति के अंत तक ही रहता है जिसमें यह दिखाई देता है। हालांकि, सी ++ जानबूझकर यह निर्दिष्ट करता है कि स्टैक पर संधि के संदर्भ में एक अस्थायी ऑब्जेक्ट बाध्यकारी है, जो संदर्भ के जीवनकाल में अस्थायी जीवनकाल को बढ़ाता है, और इस प्रकार से बचता है जो अन्यथा एक सामान्य लटकती-संदर्भ त्रुटि होगी। ऊपर दिए गए उदाहरण में, अस्थायी रूप से foo() द्वारा लौटाए गए, जब तक कि बंद होने वाले घुंघराले ब्रेस नहीं।

पुनश्च: यह केवल स्टैक-आधारित संदर्भों पर लागू होता है। यह उन संदर्भों के लिए काम नहीं करता है जो वस्तुओं के सदस्य हैं

पूर्ण पाठ: GOTW # 88: हर्ब सटर द्वारा "सबसे महत्वपूर्ण कंस्ट्र" के लिए एक उम्मीदवार