मैं सोच रहा हूं कि कोड के निम्नलिखित भाग के बारे में मानक क्या कहता है। string
printPointer
पर कॉल करने से पहले अस्थायी वस्तु के विनाशक को निष्पादित किया जा सकता है?फ़ंक्शन कॉलिंग में लागू विनाशक निष्पादन
पेज। वीएस -2010 कंपाइलर इस कोड के बारे में शिकायत नहीं करता है और सही तरीके से काम करता है।
void printPointer(const string* pointer)
{
cout << *pointer << endl;
}
const string* func(const string& s1)
{
return &s1;
}
int main()
{
printPointer(func("Hello, World!!!"));
}
अस्थायी स्ट्रिंग केवल बयान के अंत में विलुप्त है। कोई शायद संदर्भ को खोद सकता है (अनुक्रम बिंदुओं के साथ कुछ?) लेकिन आप इसे स्वयं देख सकते हैं: http://ideone.com/N3Brll – CompuChip