इस तरह का कोड अक्सर आर-मूल्य के संदर्भ में लेख में देखा जाता है:क्या कंपाइलर स्वचालित रूप से अंतराल के अंतिम उपयोग के लिए std :: move उत्पन्न कर सकता है?
Dave Abrams: Move It With Rvalue References
void g(X);
void f()
{
X b;
g(b); // still need the value of b
…
g(std::move(b)); // all done with b now; grant permission to move
}
एक संकलक इस अनुकूलन स्वचालित रूप से, यानी उत्पन्न कर सकता है एक एल-मूल्य वैसे भी विलुप्त होने जा रही है पता लगाने के लिए और से स्थानांतरित किया जा सकता है, या यह मानक का उल्लंघन होगा, एक सामान्य मामला मानते हुए संकलक को एक्स क्लास के लिए लागू, प्रतिलिपि या विनाश के बारे में कुछ भी नहीं पता है?
यदि ऐसी अनुकूलन की अनुमति है, तो क्या यह अभ्यास में कुछ कंपाइलर द्वारा किया जाता है?
हां। किसी तरह की संभावना नहीं। एक कंपाइलर तब तक ऐसा कर सकता है जब तक कि यह मानक (तथाकथित "जैसा-अगर नियम") का उल्लंघन न हो। –
रोबोट ने क्या कहा, हालांकि उत्तर आम तौर पर "नहीं" होगा। यदि आप स्थानीय चर लौटाते हैं तो स्वचालित चाल प्राप्त करने की गारंटी है, हालांकि (कुछ स्थितियों को मॉड्यूल करें, जैसे रिटर्न प्रकार स्थानीय चर के समान प्रकार है)। – Xeo
@ आर। मार्टिन्हो फर्नांडीस खैर, सवाल * विशेष रूप से * पूछता है कि क्या यह मानक का उल्लंघन करेगा, इसलिए मुझे पूरा यकीन नहीं है कि आपकी टिप्पणी इसमें क्या शामिल है। (जब तक कि आपने टिप्पणी के बाद इसे संपादित नहीं किया था?) – us2012