Можно ли предотвратить множественное наследование определенных базовых классов во время компиляции?

Я хочу разработать два разных базовых класса, которые не должны наследоваться вместе в одном производном классе. Есть ли способ принудительно применить это во время компиляции?

class Base1 {};
class Base2 {};
class Derived1 : public Base1 {} // OK!
class Derived2 : public Base2, public Other {} // OK!
class Derived3 : public Base1, Base2 {} // Can I force the compiler to complain?

Derived1 d1; // OK!
Derived2 d2; // OK!
Derived3 d3; // Or can I force the compiler to complain here?

Я знаю, что документация - хорошая идея, просто интересно, возможно ли это.

7
задан Community 23 May 2017 в 10:28
поделиться