a=d;// expected-error{{ambiguous conversion from derived class 'class D' to base class 'class A'}} expected-error{{incompatible type assigning 'class D *', expected 'class A *'}}
}
classObject2{};
classA2:publicObject2{};
classB2:publicvirtualA2{};
classC2:virtualpublicA2{};
classD2:publicB2,publicC2{};
classE2:publicD2,publicC2,publicvirtualA2{};
classF2:publicE2,publicA2{};
voidg(E2*e2,F2*f2){
Object2*o2;
o2=e2;
o2=f2;// expected-error{{ambiguous conversion from derived class 'class F2' to base class 'class Object2'}} expected-error{{incompatible type assigning 'class F2 *', expected 'class Object2 *'}}
}
// Test that ambiguous/inaccessibility checking does not trigger too
// early, because it should not apply during overload resolution.