Сообщение присваивание и перемещение себя от 09.04.2019 22:05
Изменено 10.04.2019 13:42 _NN_
Самоприсваивание и самоперемещение
Есть известный паттерн проверки присваивания и перемещения объекта себе:
Рекомендации от 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
А что делаете сегодня вы ?
присваивание и перемещение себя
Есть известный паттерн проверки присваивания и перемещения объекта себе:
Рекомендации от 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
А что делаете сегодня вы ?