У меня есть функция виртуального базового класса, которая никогда не должна использоваться в определенном производном классе. Есть ли способ "удалить" его? Я могу, конечно, просто дать ему пустое определение, но я бы предпочел сделать его попытку использования, выбросив ошибку времени компиляции. Спецификатор delete
С++ 11 выглядит так, как хотелось бы, но
class B
{
virtual void f();
};
class D : public B
{
virtual void f() = delete; //Error
};
не будет компилироваться; gcc, по крайней мере, явно не позволит мне удалить функцию, которая имеет неиспользуемую базовую версию. Есть ли другой способ получить такую же функциональность?