Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
bináris "operátor": nincs definiálva olyan operátor, amely "típus" típusú bal oldali operandust használ (vagy nincs elfogadható átalakítás)
Megjegyzések
Az operátor használatához túl kell terhelnie a megadott típushoz, vagy meg kell határoznia egy olyan típusra való átalakítást, amelyhez az operátor definiálva van.
C2678 akkor fordulhat elő, ha a bal oldali operandus const-qualified, de az operátor úgy van definiálva, hogy egy nem const argumentumot vegyen fel.
Példák
Az alábbi példa c2678-at hoz létre, és bemutatja, hogyan javítható ki:
// 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 akkor is előfordulhat, ha nem rögzít natív tagot, mielőtt tagfüggvényt hívna meg rajta.
Az alábbi példa létrehozza a C2678-at, és bemutatja, hogyan javítható ki.
// 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;
};