Compilerwarnung (Ebene 1) C4358
"Operator": Die Rückgabeart der kombinierten Stellvertretungen ist nicht "void"; zurückgegebener Wert ist nicht definiert.
Zwei Stellvertretungen wurden kombiniert, und der Rückgabewert ist nicht ungültig. Wenn zwei Stellvertretungen mit nicht ungültigen Rückgabewerten kombiniert werden, kann der Compiler keine ordnungsgemäße Zuweisung ausführen, wenn der Rückgabewert des Delegaten verwendet wird.
Im folgenden Beispiel wird C4358 generiert:
// C4358.cpp
// compile with: /clr /W1
delegate int D();
delegate void E();
ref class X {
int i;
public:
X(int ii) : i(ii) {}
int f() {
return i;
}
};
ref class Y {
int i;
public:
Y() {}
void g() {}
};
int main() {
D^ d = gcnew D(gcnew X(1), &X::f);
D^ d2 = gcnew D(gcnew X(2), &X::f);
d += d2; // C4358
int j = d(); // return value indeterminate
E^ e = gcnew E(gcnew Y, &Y::g);
E^ e2 = gcnew E(gcnew Y, &Y::g);
e += e2; // OK
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für