A version of
MultipleInheritance with the restriction that any two types
T1 and
T2 may only have at most single
meet. See
MeetsAndJoins
In such systems, only one class is allowed to multiply inherit from the same pair of base classes. In particular, the following hierarchy is not:
class Base1 {};
class Base2 {};
class Derived1 : public Base1, public Base2 {};
class Derived2 : public Base1, public Base2 {};
Derived1 and Derived2 are both meets of Base1 and Base2; as neither is a subtype of the other.