प्रकरण 1)
m
एक समारोह वापसी my
और कोई तर्क लेने के रूप में व्याख्या की है। उम्मीद उत्पादन को दूर ()
अर्थात का उपयोग my m;
केस 2)
देखने के लिए यह कुछ बेहतर "अधिकांश अप्रिय पार्स" के रूप में जाना जाता है।
n
एक समारोह लौटने my
कि समारोह लौटने my
कोई तर्क लेने के लिए प्रकार सूचक का एक तर्क लेता है के रूप में व्याख्या की है।
इस मामले में अपेक्षित आउटपुट my n((my()));
मेरे व्याख्या [पूर्व मामले में एक तर्क विनिर्देश के रूप में इलाज संकलक अब अतिरिक्त ()
की वजह से अभिव्यक्ति के रूप में यह व्याख्या करने के बजाय] की कोशिश देखने के लिए:
my n((my()))
my n = my()
के बराबर है। अब rvalue अभिव्यक्ति my()
बनाता है एक अस्थायी [अर्थात डिफ़ॉल्ट निर्माता के लिए एक कॉल] और n
प्रतिलिपि कि अस्थायी वस्तु को आरंभ नहीं हो जाता [वजह से कॉपी-ctor करने के लिए कोई कॉल कुछ compiler optimization]
पुनश्च: मैं नहीं कर रहा हूँ मेरे उत्तर के अंतिम भाग के बारे में 100% निश्चित है। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।
स्रोत
2010-11-26 08:24:52
इसे आरवीओ नहीं कहा जाता है, लेकिन यह वास्तव में एक आम अनुकूलन है। – MSalters
@MSalters: हाँ, मुझे लगता है कि यह आरवीओ का एक रूप है। :) –