Как сделать так, чтобы код с невиртуальным деструктором в порожденном классе давал ошибку компиляции? Дело в том, что компилятор дает скомпилировать такой код
class A
{
public:
virtual ~A() {}
};
class B : public A
{
public:
~B() {}
};
где деструктор класса B также является виртуальным, несмотря на неуказание слова virtual. Как бы задать опции для современных компиляторов (g++ и MSVC++), чтобы такой код компилировался с ошибками, заставляя явно указывать virtual в определении деструкторов порожденных классов.