Здравствуйте, Artifact, Вы писали:
A>Разве кто-то в здравом уме станет присваивать что-то самому себе? И, если уж так вышло, не является ли это ошибкой? И не лучше ли тогда вместо
A>MyClass& operator=(const MyClass& other) {
A> if(this != &other) {
A> * * *
A> }
A>}
A>писать
A>MyClass& operator=(const MyClass& other) {
A> assert(this != &other)
A> * * *
A>}
В подавляющем большинстве случаев опрератор присваивания можно реализовать с помощью метода copy-and-swap, который корректно работает без лишней проверки в случае присваивания "самому себе".