Ich habe einen Anwendungsfall, dass mein Objekt in keiner Weise kopiert werden darf. Ich habe eine übertrieben vollständige Liste der Löschungen von Kopierkonstruktoren und Kopierzuweisungsoperatoren geschrieben. Es gibt so viele von ihnen, dass ich nicht sicherstellen kann, welche zu verwenden, und manchmal macht mich das paranoid. Ich muss sie nicht alle in meinem Code schreiben, oder? Also, um das Kopieren von Objekten zu verhindern, welche von denen sollte ich verwenden?Löschen von Kopierkonstruktoren und Kopieren von Zuweisungsoperatoren. Welche von ihnen sind essentiell?
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;
Das sieht in der Tat ein wenig paranoid :) – melak47
Es wird auch nicht kompilieren, weil Sie nicht auf Rückgabewert überladen können. – interjay
Außerdem hast du 'volatile' vergessen ;-) –