No, its not a problem for a compiler writer:
- In general a compiler writer might be defining how multiple inheritance works.
- Specifically for C++, there are several solutions for the writer to implement.
It is a problem for the C++ programmer, but only if you don't understand how MI works in C++.
I have one general solution which is to have a base class which defines a public interface - which you then think of as having distinct subsections, which you then implement as distinct abstract classes, which are multiply inherited by a concrete leaf class:
------
| Base |
------
| |
------
^
|
-----------------
| | |
------ ------ ------
| A | | B | | C |
------ ------ ------
| | | | | |
------ ------ ------
^ ^ ^
| | |
-----------------
|
-------
|Derived|
-------
| |
-------
Each of A, B and C implement non-overlapping subsections of Base, which means you can swap out, say A, for A' for an alternate or improved implementation without affecting any other class.