Явное удаление деструкторов и невызов delete

Я читал C++11 FAQ и заметил вот это:

class X4 {
 ~X4() = delete; // Запретить уничтожение
}

Это неявно также запрещает перемещение X4. Копирование разрешено, но устарело.

Я также нашел эту цитату.

Удаление определения деструктора потребует выделения места в свободном хранилище, поскольку статические и автоматические объекты неявно вызывают деструктор:`

struct C
{
 ~C()= delete; //предотвращение автоматических и статических объектов
};

Однако, эта техника менее полезна, чем может показаться, потому что она предотвращает и выражения delete. Однако объекты-синглтоны могут его использовать.`

Что имеет смысл. Мой вопрос в том, считается ли хорошей практикой иметь Singleton с явно удаленным деструктором? Также, если кто-то знает другие сценарии, в которых не следует вызывать delete, пожалуйста, дайте мне знать.

6
задан Jesse Good 1 February 2012 в 07:12
поделиться