Информация об изменениях

Сообщение присваивание и перемещение себя от 09.04.2019 22:05

Изменено 10.04.2019 13:42 _NN_

Самоприсваивание и самоперемещение
Есть известный паттерн проверки присваивания и перемещения объекта себе:
operator=(A const& a) { if (this == &a) return *this; ...

operator=(A&& a) { if (this == &a) return *this; ...


Рекомендации от CppCoreGuidelines советуют не проверять, однако код при этом должен работать как ожидается
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c62-make-copy-assignment-safe-for-self-assignment
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c64-a-move-operation-should-move-and-leave-its-source-in-a-valid-state

А что делаете сегодня вы ?
присваивание и перемещение себя
Есть известный паттерн проверки присваивания и перемещения объекта себе:
operator=(A const& a) { if (this == &a) return *this; ...

operator=(A&& a) { if (this == &a) return *this; ...


Рекомендации от CppCoreGuidelines советуют не проверять, однако код при этом должен работать как ожидается
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c62-make-copy-assignment-safe-for-self-assignment
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c64-a-move-operation-should-move-and-leave-its-source-in-a-valid-state

А что делаете сегодня вы ?