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