Заявление
Неявно объявленный оператор назначения перемещения
Если для класса не заданы пользовательские операторы назначения перемещения
тип (структура, класс или объединение), и все следующее верно:
нет пользовательских конструкторов копирования;
нет объявленных пользователем конструкторов перемещения;
нет заявленных пользователем операторов копирования;
нет деструкторов, объявленных пользователем;
с заявленным пользователем оператором копирования означает, что это означает только
имя_класса & имя_класса :: operator = (имя_класса &&)
или любой operator=()
определен?
* +1032 * Пример: * 1 033 *
class Bar
{
public:
Bar() = default;
SomeClass some;
};
class Foo
{
public:
Foo() = default;
Foo& operator=(Bar&& bar) : some(std::move(bar.some))
{
}
SomeClass some;
};
Соответствует ли это условию для имплицитно объявленного оператора перемещения?
То же самое относится и к неявно объявленному конструктору перемещения.