Использование деструктора = удалить;
Рассмотрим следующий класс:
struct S { ~S() = delete; };
Коротко и для цели вопроса: я не могу создавать экземплярыS
лайкS s{};
ибо я не мог их уничтожить.
Как уже упоминалось в комментариях, я все еще могу создать экземпляр, выполнивS *s = new S;
, но я не могу удалить его также.
Поэтому единственное использование, которое я вижу для удаленного деструктора, это что-то вроде этого:
struct S {
~S() = delete;
static void f() { }
};
int main() {
S::f();
}
То есть определите класс, который предоставляет только несколько статических функций и запрещает любые попытки создать экземпляр этого класса.
Каковы другие способы использования (если есть) удаленного деструктора?