Код ниже. У меня есть одна функция f() и одна единственная функция f (int) в моем классе D, так почему этот вызов неоднозначен, если обе функции имеют разные параметры?
struct A {
void f() {}
};
struct B: virtual A {
void f(int i) {}
};
struct C: virtual A {
void f() {}
};
struct D: B, C {
};
int main()
{
D d;
d.f(5); //ambiguous
}