Compilerwarnung (Ebene 1) C4383
"instance_dereference_operator" : die Bedeutung der Ableitung eines Handles kann sich ändern, wenn ein benutzerdefinierter Operator "Operator" vorhanden ist; schreiben Sie den Operator als statische Funktion, um explizit über den Operanden zu sein.
Wenn Sie eine benutzerdefinierte Instanzüberschreibung des Ableitungsoperators in einem verwalteten Typ hinzufügen, überschreiben Sie möglicherweise die Fähigkeit des Ableitungsoperators des Typs, das Handle-Objekt zurückzugeben. Erwägen Sie das Schreiben eines statischen, benutzerdefinierten Ableitungsoperators.
Weitere Informationen finden Sie unter Handle to Object Operator (^) und Tracking Reference Operator.
Außerdem ist ein Instanzoperator nicht für andere Sprachcompiler über referenzierte Metadaten verfügbar. Weitere Informationen finden Sie unter User-Defined Operators (C++/CLI).For more information, see User-Defined Operators (C++/CLI).
Beispiel
Im folgenden Beispiel wird C4383 generiert.
// C4383.cpp
// compile with: /clr /W1
ref struct S {
int operator*() { return 0; } // C4383
};
ref struct T {
static int operator*(T%) { return 0; }
};
int main() {
S s;
S^ pS = %s;
T t;
T^ pT = %t;
T% rT = *pT;
}
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