Если вы действительно хотите, вы тестируете оба своих базовых класса:
class A {};
class B : public A {};
class C : public A {};
class D : public B, public C
{
static_assert(!(is_base_of<A,B>::value && is_base_of<A,C>::value),
"Invalid inheritance!");
};
В противном случае вы можете заставить классы наследоваться виртуально от A, так что в производном классе все еще будет только один его экземпляр:
class A {};
class B : public virtual A {};
class C : public virtual A {};
class D : public B, public C
{
// only one A here
};