मेरे पास एक उपयोग केस है कि मेरी वस्तु को किसी भी तरह से कॉपी नहीं किया जाना चाहिए। मैंने कॉपी कन्स्ट्रक्टर की एक अतिरंजित पूर्ण सूची और नीचे असाइनमेंट ऑपरेटर हटाने की प्रतिलिपि लिखी है। उनमें से बहुत सारे हैं कि मैं यह सुनिश्चित नहीं कर सकता कि किन लोगों का उपयोग करना है, और कभी-कभी यह मुझे पागल बनाता है। मुझे उन्हें अपने कोड में लिखना नहीं है, क्या मैं? तो, किसी भी प्रकार की वस्तु प्रतिलिपि को रोकने के लिए, उनमें से किस का उपयोग करना चाहिए?कॉपी कन्स्ट्रक्टर को हटाने और असाइनमेंट ऑपरेटरों की प्रतिलिपि बनाएँ। उनमें से कौन सा जरूरी है?
MyClass ( MyClass &) = delete;
MyClass (const MyClass &) = delete;
MyClass ( MyClass &&) = delete;
MyClass (const MyClass &&) = delete;
MyClass operator=( MyClass &) = delete;
MyClass operator=(const MyClass &) = delete;
const MyClass operator=( MyClass &) = delete;
const MyClass operator=(const MyClass &) = delete;
MyClass & operator=( MyClass &) = delete;
MyClass & operator=(const MyClass &) = delete;
const MyClass & operator=( MyClass &) = delete;
const MyClass & operator=(const MyClass &) = delete;
MyClass && operator=( MyClass &) = delete;
MyClass && operator=(const MyClass &) = delete;
const MyClass && operator=( MyClass &) = delete;
const MyClass && operator=(const MyClass &) = delete;
MyClass operator=( MyClass &&) = delete;
MyClass operator=(const MyClass &&) = delete;
const MyClass operator=( MyClass &&) = delete;
const MyClass operator=(const MyClass &&) = delete;
MyClass & operator=( MyClass &&) = delete;
MyClass & operator=(const MyClass &&) = delete;
const MyClass & operator=( MyClass &&) = delete;
const MyClass & operator=(const MyClass &&) = delete;
MyClass && operator=( MyClass &&) = delete;
MyClass && operator=(const MyClass &&) = delete;
const MyClass && operator=( MyClass &&) = delete;
const MyClass && operator=(const MyClass &&) = delete;
यह वास्तव में थोड़ा सा भयावह देखता है :) – melak47
यह संकलित नहीं होगा, क्योंकि आप वापसी मूल्य पर अधिभार नहीं कर सकते हैं। – interjay
इसके अलावा, आप 'अस्थिर' भूल गए ;-) –