Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'operator-id' is dubbelzinnig
Opmerkingen
Er wordt meer dan één mogelijke operator gedefinieerd voor een overbelaste operator.
Deze fout kan worden opgelost als u een expliciete cast gebruikt voor een of meer werkelijke parameters.
Voorbeelden
In het volgende voorbeeld wordt C2593 gegenereerd:
// 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 )
}
Deze fout kan worden veroorzaakt door het serialiseren van een variabele met drijvende komma met behulp van een CArchive object. De compiler identificeert de << operator als dubbelzinnig. De enige primitieve C++-typen die CArchive kan serialiseren, zijn de typen met vaste grootte BYTE, WORD, DWORD en LONG. Alle typen gehele getallen moeten worden gecast naar een van deze typen voor serialisatie. Drijvende-komma-typen moeten worden gearchiveerd d.m.v. de CArchive::Write() lidfunctie.
In het volgende voorbeeld ziet u hoe u een variabele met drijvende komma (f) kunt archiveren naar ar.
ar.Write(&f, sizeof( float ));