Наткнулся на относительно часто используемый фрагмент кода, который поначалу казался неэффективным. (Я знаю, что оптимизация иногда бывает злой, но мне было интересно) Введение - довольно простой SP
Почему возникает исключение InvalidCastException с учетом следующего? Я не понимаю, почему это должно быть вне ошибки (это в x86; x64 вылетает с 0xC0000005 в clrjit.dll). программа класса
{...
class Base
{виртуальный void foo () = 0; // ~ Base (); <- Никакого деструктора!
}; Очевидно, Base будет производным. Итак, говорит ли C ++, что созданный компилятором деструктор Base должен быть виртуальным? ...