Compartilhar via


Erro do Compilador C2594

'operator' : conversões ambíguas do 'type1' para o 'type2'

Nenhuma conversão do type1 para o type2 foi mais direta do que qualquer outra. Sugerimos duas soluções possíveis para converter do type1 para o type2. A primeira opção é definir uma conversão direta do type1 para o type2 e a segunda opção é especificar uma sequência de conversões do type1 para type2.

O seguinte exemplo gera o C2594. A resolução sugerida para o erro é uma sequência de conversões:

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