Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
'operator identifier' è ambiguo
Osservazioni:
Più di un possibile operatore è definito per un operatore di overload.
Questo errore può essere risolto se si usa un cast esplicito su uno o più parametri effettivi.
Esempi
L'esempio seguente genera l'errore 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 )
}
Questo errore può essere causato dalla serializzazione di una variabile a virgola mobile tramite un CArchive oggetto . Il compilatore identifica l'operatore << come ambiguo. Gli unici tipi C++ primitivi che CArchive possono serializzare sono i tipi BYTEa dimensione fissa , WORD, DWORDe LONG. Per la serializzazione è necessario eseguire il cast di tutti i tipi integer. I tipi a virgola mobile devono essere archiviati usando la CArchive::Write() funzione membro.
Nell'esempio seguente viene illustrato come archiviare una variabile a virgola mobile (f) per archiviare ar:
ar.Write(&f, sizeof( float ));