Compartir a través de


Error del compilador C2594

'operador': conversiones ambiguas de 'tipo1' a 'tipo2'

Ninguna conversión de tipo1 a tipo2 era más directa que cualquier otra. Se sugieren dos soluciones posibles para convertir de tipo1 a tipo2. La primera opción es definir una conversión directa de tipo1 a tipo2 y la segunda es especificar una secuencia de conversiones de tipo1 a tipo2.

El ejemplo siguiente genera el error C2594. La resolución sugerida para el error es una secuencia de conversiones:

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