RVO अनुकूलन तोड़ने के लिए कोई तरीका नहीं है const
का वादा, इसलिए कोई समस्या नहीं है: आरवीओ किया जा सकता है।
हालांकि, चाल अर्थ विज्ञानconst
से प्रभावित है। यह प्रभावी ढंग से चाल semantics अक्षम करता है, यानी T(T&&)
कन्स्ट्रक्टर या असाइनमेंट ऑपरेटर ले जाएँ। तो सामान्य रूप से, वापसी मूल्य पर const
का उपयोग न करें।
स्कॉट मेयर्स ने मूल रूप से अधिक मूल्य कोडिंग के लिए const
की वापसी मूल्यों पर अनुशंसा की।
फिर आंद्रेई अलेक्जेंड्रेस्कू, डीडीजे के लिए उनके मोजो लेख में, ध्यान दिया गया कि अब से आगे बढ़ने के साथ, const
वापसी मूल्यों पर बेहतर प्रतिबंध लगाया जाना चाहिए, और स्कॉट की पूर्व सलाह को अनदेखा किया जाना चाहिए।
अब मैंने कभी भी एनआरवीओ जैसे विभिन्न विशेष आरवीओ शब्दकोषों को जानने के लिए परेशान नहीं किया। और एक मुख्य कारण यह है कि इन ने अर्थात् अर्थात् बदल दिया, मूल रूप से g ++ कंपाइलर में कुछ कस्टम कार्यक्षमता के साथ एक अर्थ है। यहां शब्दावली सिर्फ एक गड़बड़ है।
तो, अगर मेरी शब्दावली गलत है और मुझे वास्तव में कुछ अन्य परिवर्णी शब्द का उपयोग करना चाहिए, तो कृपया सही करने के लिए स्वतंत्र महसूस करें! :-)
स्रोत
2013-01-20 22:24:34
आप अपने प्रयोगों के परिणामों को कम से कम एक कंपाइलर के साथ क्यों शामिल नहीं करते? –
@MarcGlisse: ठीक है, विजुअल सी ++ 2008 ने इसे अनुकूलित किया है, लेकिन मुझे यकीन नहीं है कि मानक वास्तव में इसे अनुमति देता है या नहीं। – Mehrdad