C++ में कॉपी एलिज़न (copy elision) और रिटर्न वैल्यू ऑप्टिमाइज़ेशन (RVO) क्या है?
सभी को नमस्ते! मैं C++ सीख रहा हूँ और "copy elision" और "return value optimization" (RVO) शब्दों पर आ गया हूँ। सच कहूँ तो, मैं पूरी तरह से नहीं समझता कि ये क्या हैं और इनकी आवश्यकता क्यों है।
मेरे पास एक सरल क्लास है जो कंस्ट्रक्टर और डिस्ट्रक्टर में कुछ करता है:
```cpp
#include
class MyClass {
public:
MyClass() { std::cout << "Constructor\n"; }
MyClass(const MyClass&) { std::cout << "Copy constructor\n"; }
~MyClass() { std::cout << "Destructor\n"; }
};
MyClass createObject() {
MyClass obj;
return obj; // क्या यहाँ कॉपी हो रही है?
}
int main() {
MyClass result = createObject();
return 0;
}
```
जब मैं यह कोड चलाता हूँ, तो मुझे देखने की उम्मीद है: "Constructor", फिर "Copy constructor" (फंक्शन से लौटते समय), फिर दोबारा "Copy constr