может не создавать дефолтный деструктор, если в описании класса он не указан?
И если нет, то в чём тогда смысл наличия конструкции decl-specifier-seq(optional) ~ class-name () = default; ?
Ещё =default можно переменить не только к деструктору
Ага и к конструктору тоже. И там тот же вопрос.
Ещё деструктор можно сделать виртуальным
Ну в общем default походу это чисто эстетическая вещь, чтобы не писать пустое тело после объявления виртуального деструктора.
Конструктор не всегда будет сгенерирован, иногда нужно сказать компилятору чтобы генерил его. На счёт деструктора наверно да, тем не менее это функция, которую компилятор может сгенерить, так что логично туда применять =default
Бывает.
Например? Стандарт говорит, что компилятор обязан его сгенерировать.
Что-то ты вообще херню написал, а я не заметил... Дефолтным бывает только конструкторы. Деструктор вообше только один. (Хотя в последних стандартах разрешено делать несколько вариантов проектов деструкторов, но потом он всё равно один)
Стандарт говорит, что если не определён/удалён явно, то всегда генерируется как inline public member of its class
Я ошибся, неверно прочитал текст. Не бывает
Нет, компилятор не генерирует деф конструктор, если есть пользовательский
Пардонмуа за мой французский, но херню ты написал.
А теперь прочти моё первое сообщение, где говорится о применении ~classname() = default
Ты можешь не объявлять деструктор явно, он создастся неявно. Такое ты можешь явно объявить деструктор и задать его реализацию как реализацию по умолчанию
Речь про ДЕСТРУКТОР!
А, ок, хорошо
Обсуждают сегодня