Erreur du compilateur C2594
'operator' : conversions ambiguës de 'type1' en 'type2'
Aucune conversion de type1 en type2 n’était plus directe que n’importe quelle autre. Nous vous suggérons deux solutions possibles pour convertir de type1 en type2. La première option consiste à définir une conversion directe de type1 en type2, et la deuxième option consiste à spécifier une séquence de conversions de type1 à type2.
L’exemple suivant génère l’erreur C2594. La résolution suggérée de l’erreur est une séquence de conversions :
// 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));
}