в библиотеке есть некий интерфейс типа
class A
{
virtual void A() = 0;
virtual void B() = 0;
...
}
и пучок наследников от него, соответственно с различными реализациями A() и B().
Хочется использовать эти классы в нескольких применениях (программах), причем в одном востребованы как A() так и B(), а в другом B() не используется и компилировать все реализации метода особого смысла нет. Есть ли какой-нибудь более человеческий способ исключения B() из компиляции, кроме
— окружения всех деклараций и реализаций B() в потомках кучкой #ifdef COMPILE_B
— вынесения всех реализаций B() в отдельный файл и его подключения/отключения?