次の方法で共有


コンパイラ エラー C2594

'operator' : 'type1' から 'type2' への変換はあいまいです

注釈

type1 から type2 への変換は、他よりも直接的ではありません。 type1 から type2 への変換には、可能な 2 つの解決策をお勧めします。 最初のオプションは、type1 から type2 への直接変換を定義すること、2 番目のオプションは、type1 から type2 への変換のシーケンスを指定することです。

次の例では C2594 が生成されます。 このエラーに対して推奨される解決策は、一連の変換です。

// C2594.cpp
// compile with: /c
struct A{};
struct I1 : A {};
struct I2 : A {};
struct D : I1, I2 {};

A *f (D *p) {
   return (A*) (p);    // C2594

// try the following line instead
// return static_cast<A *>(static_cast<I1 *>(p));
}