以下のコードでは、「適用」の呼び出しがあいまいであると報告される理由がわかりません。指定されたパラメーター ( ) に対して受け入れ可能な一致は 1 つだけA_applicator::apply
です。このあいまいさの原因となる解決の流れを判断するのに役立つ標準への参照をいただければ幸いです。
struct A { };
struct B { };
struct A_D : public A { };
struct A_applicator {
virtual void apply( A ) { }
};
struct B_applicator {
virtual void apply( B ) { }
};
struct dual_applicator : public B_applicator, public A_applicator {
};
int main() {
dual_applicator app;
A_D d;
app.apply(d);
}
(オンラインデモ)