Я читал C++11 FAQ и заметил вот это:
class X4 { ~X4() = delete; // Запретить уничтожение }
Это неявно также запрещает перемещение X4. Копирование разрешено, но устарело.
Я также нашел эту цитату.
Удаление определения деструктора потребует выделения места в свободном хранилище, поскольку статические и автоматические объекты неявно вызывают деструктор:`
struct C { ~C()= delete; //предотвращение автоматических и статических объектов };
Однако, эта техника менее полезна, чем может показаться, потому что она предотвращает и выражения delete. Однако объекты-синглтоны могут его использовать.`
Что имеет смысл. Мой вопрос в том, считается ли хорошей практикой иметь Singleton с явно удаленным деструктором? Также, если кто-то знает другие сценарии, в которых не следует вызывать delete
, пожалуйста, дайте мне знать.