Sdílet prostřednictvím


Chyba kompilátoru C2594

'operator' : nejednoznačné převody z 'type1' na 'type2'

Poznámky

Žádný převod typu 1 na typ2 nebyl přímější než jakýkoli jiný. Doporučujeme dvě možná řešení pro převod typu 1 na typ2. První možností je definovat přímý převod typu 1 na typ2 a druhou možností je zadat posloupnost převodů z typu1 na typ2.

Příklad

Následující příklad vygeneruje C2594. Navrhované řešení chyby je posloupnost převodů:

// 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));
}