В соответствии с этими рекомендациями:
Если требуется деструктор по умолчанию, но его генерация была (например, определяя конструктор перемещения), используйте
=default
.
Я не могу представить, когда код был бы плохо сформирован без явного деструктора по умолчанию в классе, который имеет конструктор перемещения.
Может ли кто-нибудь показать мне пример, подтверждающий цитирование выше?
struct S {
S() {};
S( S&& ) {}; // move ctor
};
int main() {
S s; // there is no need to declare dtor explicitly =default
}