В этом вопросе SO указано, что эта конструкция запрещает размещение экземпляра экземпляра.
class FS_Only {
~FS_Only() = delete; // disallow stack allocation
};
Мой вопрос в том, как он предотвращает выделение? Я понимаю, что невозможно удалить этот экземпляр, явно или неявно. Но я думаю, что это приведет к ошибке утечки памяти или времени выполнения, соответственно.
Являются ли компиляторы достаточно умными, чтобы разобраться в этом и повысить ошибку компилятора? Также зачем это нужно?