Usos de destructor = eliminar;
Considere la siguiente clase:
struct S { ~S() = delete; };
En breve y para el propósito de la pregunta: no puedo crear instancias deS
me gustaS s{};
porque no pude destruirlos.
Como se menciona en los comentarios, todavía puedo crear una instancia haciendoS *s = new S;
, pero no puedo eliminarlo también.
Por lo tanto, el único uso que puedo ver para un destructor eliminado es algo como esto:
struct S {
~S() = delete;
static void f() { }
};
int main() {
S::f();
}
Es decir, defina una clase que exponga solo un montón de funciones estáticas y prohíba cualquier intento de crear una instancia de esa clase.
¿Cuáles son los otros usos (si los hay) de un destructor eliminado?