Avertissement du compilateur (niveau 1) C4383
'instance_dereference_operator' : la signification de la déréférence d’un handle peut changer, lorsqu’un opérateur 'operator' défini par l’utilisateur existe ; écrire l’opérateur en tant que fonction statique pour être explicite sur l’opérande
Lorsque vous ajoutez un remplacement d’instance défini par l’utilisateur de l’opérateur de déréférencement dans un type managé, vous pouvez éventuellement remplacer la capacité de l’opérateur de déréférencement du type à retourner l’objet du handle. Envisagez d’écrire un opérateur de déréférencement statique défini par l’utilisateur.
Pour plus d’informations, consultez Handle to Object Operator (^) et Tracking Reference Operator.
En outre, un opérateur d’instance n’est pas disponible pour d’autres compilateurs de langage via des métadonnées référencées. Pour plus d’informations, consultez Opérateurs définis par l’utilisateur (C++/CLI).
Exemple
L’exemple suivant génère l’erreur C4383.
// 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;
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour