Когда не генерируется перемещение
Вопрос
Какие объявления подавляют неявные перемещающие операции?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
Любое пользовательское объявление деструктора, копирующего конструктора, копирующего присваивания или другой перемещающей операции. Тогда rvalue связывается с копированием. Явное = default для деструктора тоже считается объявлением.
Разбор
Любое пользовательское объявление деструктора, копирующего конструктора, копирующего присваивания или другой перемещающей операции. Тогда rvalue связывается с копированием. Явное = default для деструктора тоже считается объявлением.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Пустой деструктор и перемещение
Следующий вопрос
Что объявили и что сгенерирует компилятор
Ещё по теме «Правило 0/3/5»
- Длинная арифметика: класс BigUint и факториал
- Класс матрицы 2×2 и быстрое возведение в степень
- Что даёт copy-and-swap
- Как написать оператор присваивания
- Куда пропал конструктор по умолчанию
- Объявили перемещающий конструктор
- Почему move должен быть noexcept
- Что выведет: деструктор отключил перемещение