Сопоставление Senior Правило 0/3/5 обновлено

Что объявили и что сгенерирует компилятор

Вопрос

Сопоставьте, что пользователь объявил в классе (больше ничего), с последствием.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Это сокращённая таблица правил генерации. Самая коварная строка вторая: код компилируется, но перемещение тихо превращается в копирование.

Правильные пары

Только конструктор T(int)
Нет неявного конструктора по умолчанию
Только деструктор ~T()
Перемещение не генерируется, rvalue копируются
Только перемещающий конструктор
Копирующие операции удалены
Член int& ref
Присваивания удалены, копирующий конструктор есть
Ничего не объявлено
Генерируются все шесть по необходимости

Разбор

Это сокращённая таблица правил генерации. Самая коварная строка вторая: код компилируется, но перемещение тихо превращается в копирование.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.