Existe uma maneira de impedir que uma classe seja derivada duas vezes usando uma declaração estática e uma característica de tip

Sei que este é um exemplo artificial, mas quero uma verificação de compilação para evitar isso ...

class A {};
class B : public A {};
class C : public A {};

class D : public B, public C
{
    BOOST_STATIC_ASSERT((is_base_of_once<A,D>::value))
};

questionAnswers(3)

yourAnswerToTheQuestion