virtual void foo() {}
};
struct Derived : Base
{
void foo() override {}
std::string str = "abcdef";
};
int main()
{
Base* ptr = new Derived;
delete ptr;
}
Забиваем на то, что это УБ. Рассматриваем gcc9 с libstd++
Вопрос:
Есть ли утечка в этом коде?
Ты сразу по отсутствию виртуального деструктора и по sso бьешь?
Да, размеры структур разные выделил одно, удалил другое. Но так как все в мэйн компилятор может вообще все удалить :)
Зависит от стандарта
Есть ли жизнь после UB? Да, UB -- это целая новая вселенная!
Я же говорю. Тут утечка может быть.
this
Обсуждают сегодня