Помимо наличия чистой виртуальной функции, существует ли способ предотвратить создание абстрактного базового класса?
Я могу это сделать:
class BaseFoo
{
virtual void blah() = 0;
};
class Foo : public BaseFoo
{
virtual void blah() {}
};
но я бы хотел избежать vtable. (согласно мой другой вопрос о виртуальных деструкторах)
Microsoft ATL имеет ATL_NO_VTABLE, чтобы выполнить это (или, по крайней мере, я думаю, что он делает...)