- 1
- 2
- 3
- 4
- 5
- 6
- 7
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
А что можно найти в вашей кодовой базе? К слову, выяснилось, что вариант
void operator=(const MyType&) = delete;
вполне себе допустим.
Конструктор копирования не может ничего вернуть. Winner удаляет функцию с именем MyType, которую компилятор и так синтезировать не собирался.
>> = delete;
Поясните, что происходит вообще?
К удалению объекта при присваивании и перегрузке delete это отношения не имеет?
Меня шмонай ты, вертухай,
Да загляни под юбочку,
Да посмотри на булочки.
Понюхай попку носиком,
Прикинься, киса, пёсиком,
Вот в этом вся и разница,
Кто хочет, а кто дразнится.
©Любимая группа мамки админа
У меня мозг сейчас взорвётся.
Неужели у плюсовика сама фраза не вызывает никакого диссонанса?
> которую компилятор и так синтезировать не собирался.
Кто-то криво отредактировал скопипасченное, должно быть
MyType(const MyType&) = delete;
C++20!
Я и в C89 так могу сделать.