Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

कॉपी एलिशन और रिटर्न वैल्यू ऑप्टिमाइजेशन क्या हैं?


Copy elision कुछ परिस्थितियों में अतिरिक्त (संभावित रूप से महंगी) प्रतियों को रोकने के लिए अधिकांश कंपाइलरों द्वारा कार्यान्वित एक अनुकूलन है। इसलिए यदि आपके पास कुछ कोड है जो ऐसी वस्तुओं का निर्माण कर रहा है जिनका उपयोग नहीं किया जा रहा है या जिनके दुष्प्रभाव नहीं हैं,

उदाहरण

struct MyStruct {
   MyStruct() {}
   MyStruct(const MyStruct&) {
      std::cout << "Copied.\n";
   }
};
MyStruct f() {
    return MyStruct();
}
int main() {
   std::cout << "Main\n";
   MyStruct obj = f();
}

आउटपुट

आप कंपाइलर और सेटिंग्स के आधार पर निम्न में से कोई भी आउटपुट प्राप्त कर सकते हैं -

Main

Main
Copied
Copied

Main
Copied

इसका मतलब है कि आपकी अपेक्षा से कम ऑब्जेक्ट बनाए जा सकते हैं, इसलिए आप एक विशिष्ट संख्या में कंस्ट्रक्टर्स और डिस्ट्रक्टर्स को बुलाए जाने पर भी भरोसा नहीं कर सकते। आपके पास कॉपी/मूव-कंस्ट्रक्टर्स या डिस्ट्रक्टर्स के अंदर क्रिटिकल लॉजिक नहीं होना चाहिए, क्योंकि आप उन्हें बुलाए जाने पर भरोसा नहीं कर सकते।


  1. C# में कितने प्रकार होते हैं?

    C# के प्रकारों में निम्नलिखित शामिल हैं - मान प्रकार मान प्रकार चर को सीधे एक मान असाइन किया जा सकता है। वे System.ValueType. . वर्ग से प्राप्त हुए हैं मान प्रकारों में सीधे डेटा होता है। कुछ उदाहरण इंट, चार और फ्लोट हैं, जो क्रमशः संख्याओं, अक्षरों और फ्लोटिंग पॉइंट नंबरों को संग्रहीत करते हैं। ज

  1. सी # में रेफरी और आउट पैरामीटर के बीच अंतर क्या हैं?

    रेफरी पैरामीटर एक संदर्भ पैरामीटर एक चर के स्मृति स्थान का संदर्भ है। जब आप संदर्भ द्वारा पैरामीटर पास करते हैं, तो मान पैरामीटर के विपरीत, इन पैरामीटर के लिए एक नया संग्रहण स्थान नहीं बनाया जाता है। आप रेफरी कीवर्ड का उपयोग करके संदर्भ पैरामीटर घोषित कर सकते हैं। निम्नलिखित एक उदाहरण है - उदाहरण

  1. सी # में डेटा प्रकार, मूल्य प्रकार और संदर्भ प्रकार क्या हैं?

    डेटाटाइप C# में दो प्रकार के होते हैं यानी वैल्यू टाइप, रेफरेंस टाइप और पॉइंटर टाइप। मान प्रकार मान प्रकार चर को सीधे एक मान सौंपा जा सकता है। वे System.ValueType. . वर्ग से प्राप्त हुए हैं मान प्रकार डेटा प्रकार निम्नलिखित हैं - टाइप करें प्रतिनिधित्व करता है श्रेणी डिफ़ॉल्ट मान बूल बूलियन म