क्या यह कोड मान्य है?सी ++ अस्थायी परिवर्तनीय जीवनकाल
int foo()
{
std::vector<std::string>& v = std::vector<std::string>(5, "X");
// Do something silly...
return 42;
}
किसी कारण मैंने सोचा था कि अस्थायी std::vector
वस्तु (सही काम संकेत से) विलुप्त जाना चाहिए कि सही होने के बाद यह निर्माण है के लिए (इस प्रकार संदर्भ अमान्य प्रतिपादन)।
हालांकि, डिबगिंग साबित करता है कि मैं गलत हूं और, ठीक है, मुझे एहसास हुआ कि मुझे समझ में नहीं आता कि फ़ंक्शन रिटर्न होने पर अस्थायी चर को क्यों नष्ट किया जाता है।
मुझे लगता है कि मैं कुछ मौलिक के एक मजबूत गलतफहमी है, तो मुझे प्रबुद्ध कृपया :)
जब आप कहते हैं कि "डिबगिंग साबित करता है कि मैं गलत हूं", तो आपका क्या मतलब है? –