[ERROR]
The ambiguity resolution mechanism found an ambiguity. That means, more than one object could be taken for the identifier Name. So the compiler does not know which one is desired.
struct A {
int i;
};
struct B : A {
};
struct C : A {
};
struct D : B, C {
};
void main() {
D d;
d.i=3; // error, could take i from B::A or C::A
d.B::i=4; // ok
d.C::i=5; // ok
}
Specify a path, how to get to the desired object. Or use virtual base classes in multiple inheritance. The compiler can handle a most 10'000 different numbers for a compilation unit. Internally for each number a descriptor exists. If an internal number descriptor already exists for a given number value with a given type, the existing one is used. But if e.g. more than 10'000 different numbers are used, this message will appear.