Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
binär 'operator': ingen operatör definierad som tar en vänsteroperatör av typen 'typ' (eller så finns det ingen acceptabel konvertering)
Anmärkningar
Om du vill använda operatorn måste du överbelasta den för den angivna typen eller definiera en konvertering till en typ som operatorn har definierats för.
C2678 kan inträffa när den vänstra operanden är const-kvalificerad men operatorn definieras för att ta ett icke-const-argument.
Exempel
Följande exempel genererar C2678 och visar hur du åtgärdar det:
// 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 också inträffa om du inte fäster en inhemsk medlem innan du anropar en medlemsfunktion på den.
I följande exempel genereras C2678 och hur du åtgärdar det.
// 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;
};