Ладно, я столкнулся с этим сегодня, когда компилятор TI TMS470 C ++ отказался его принять.
Это происходит из Silver версии C ++ перевода примера кода "Head First Design Patterns".
class foo {
...
protected:
virtual ~foo() = 0 {}; // compiler barfs on this line
};
Компилятор отказался принять комбинацию "= 0" (чисто виртуальная) и "{}" (я предполагаю, что это должно позволить производному классу в любом случае вызвать деструктор.
Что именно они пытаются сделать с этой строкой, действительно ли это законный C ++, и насколько это важно?