Я простой программист. Переменные-члены моего класса чаще всего состоят из POD-типов и STL-контейнеров. Из-за этого мне редко приходится писать операторы присваивания или конструкторы копирования, поскольку они реализованы по умолчанию.
Добавьте к этому, если я использую std :: move
для объектов, которые нельзя перемещать, он использует присваивание -operator, что означает, что std :: move
совершенно безопасен.
Поскольку я простой программист, я хотел бы воспользоваться возможностями перемещения без добавления оператора конструктора перемещения / присваивания в каждый класс, который я пишу, поскольку компилятор мог бы просто реализовать их как " this-> member1_ = std :: move (other.member1 _); ...
"
Но это не так (по крайней мере не в Visual 2010), есть ли для этого какая-то особая причина?
Что еще более важно; есть ли способ обойти это?
Обновление: Если вы посмотрите на ответ GManNickG, он предоставляет отличный макрос для этого. И если вы не знали, если вы реализуете семантику перемещения, вы можете удалить функцию-член подкачки.