0

Почему вызывается деструктор для объекта, который не был удален?

34

Вопрос на StackOverflow: Проблема с компиляцией из-за удаленного деструктора

У меня есть следующий код на C++:

struct A
{
    ~A() = delete;
};

int main()
{
    new A{};
}

При компиляции я получаю сообщение об ошибке:

error: use of deleted function 'A::~A()'
            new A{};

Как я понимаю, я не уничтожаю объект, так почему компилятор пытается вызвать деструктор?

Код компилируется с помощью:

g++ -std=c++17 -O2

Я использую GCC 8.1.0. Может кто-то объяснить, почему возникает эта ошибка и как ее можно решить?

0 ответ(ов)

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь