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.
binaire operator: er is geen operator gedefinieerd die een linkeroperand van het type 'type' gebruikt (of er is geen acceptabele conversie)
Opmerkingen
Als u de operator wilt gebruiken, moet u deze overbelasten voor het opgegeven type of een conversie definiƫren naar een type waarvoor de operator is gedefinieerd.
C2678 kan optreden wanneer de linkeroperand const-gekwalificeerd is, maar de operator is gedefinieerd om een niet-const argument te nemen.
Voorbeelden
In het volgende voorbeeld wordt C2678 gegenereerd en ziet u hoe u dit kunt oplossen:
// C2678a.cpp
// Compile by using: cl /EHsc /W4 C2678a.cpp
struct Combo {
int number;
char letter;
};
inline Combo& operator+=(Combo& lhs, int rhs) {
lhs.number += rhs;
return lhs;
}
int main() {
Combo const combo1{ 42, 'X' };
Combo combo2{ 13, 'Z' };
combo1 += 6; // C2678
combo2 += 9; // OK - operator+= matches non-const Combo
}
C2678 kan ook optreden als u een natuurlijk lid niet pint voordat u een lidfunctie aanroept.
In het volgende voorbeeld wordt C2678 gegenereerd en ziet u hoe u dit kunt oplossen.
// C2678.cpp
// compile with: /clr /c
struct S { int _a; };
ref class C {
public:
void M( S param ) {
test = param; // C2678
// OK
pin_ptr<S> ptest = &test;
*ptest = param;
}
S test;
};