Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
'operator identificador' é ambíguo
Observações
Mais de um operador possível é definido para um operador sobrecarregado.
Esse erro poderá ser corrigido se você usar uma conversão explícita em um ou mais parâmetros reais.
Exemplos
O exemplo a seguir gera C2593:
// C2593.cpp
struct A {};
struct B : A {};
struct X {};
struct D : B, X {};
void operator+( X, X );
void operator+( A, B );
D d;
int main() {
d + d; // C2593, D has an A, B, and X
(X)d + (X)d; // OK, uses operator+( X, X )
}
Esse erro pode ser causado pela serialização de uma variável de ponto flutuante usando um objeto CArchive. O compilador identifica o operador << como ambíguo. Os únicos tipos C++ primitivos que CArchive pode serializar são os tipos de tamanho fixo BYTE, WORD, DWORD e LONG. Todos os tipos inteiros devem ser convertidos em um desses tipos para serialização. Os tipos de ponto flutuante devem ser arquivados usando a função de membro CArchive::Write().
O exemplo a seguir mostra como arquivar uma variável de ponto flutuante (f) para arquivar ar:
ar.Write(&f, sizeof( float ));