@BMinhoj

При наличии каких членов класса move-конструктор не будет сгенерирован автоматически?

1) Пользовательский explicit конструктор
2) Пользовательский move конструктор
3) Пользовательский конструктор копирования
4) Пользовательский оператор присваивания
5) Пользовательский move-оператор присваивания
6) пользовательский деструктор
7) Приватное поле примитивного типа
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Implicitly-declared move constructor

If no user-defined move constructors are provided for a class type (struct, class, or union), and all of the following is true:
  • there are no user-declared copy constructors;
  • there are no user-declared copy assignment operators;
  • there are no user-declared move assignment operators;
  • there is no user-declared destructor.

then the compiler will declare a move constructor as a non-explicit inline public member of its class with the signature T::T(T&&).

Ну и пользовательский move-конструктор исключает автоматический.
Так что 2, 3, 4, 5, 6.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы