Avertissement C28303
Pour le paramètre <de référence C++ parameter_name>, un opérateur ambigu
_Deref_
a été trouvé sur « annotation ».
Cet avertissement similaire à l’avertissement C28302 est signalé lorsqu’un niveau supplémentaire est _Deref_
utilisé sur un paramètre.
SAL2 ne nécessite pas l’utilisation d’un niveau supplémentaire lorsque vous traitez des paramètres de _Deref_
référence. Cette annotation particulière est ambiguë quant au niveau de déréférence qui est destiné à être annoté. Il peut être nécessaire d’utiliser _At_
pour référencer l’objet spécifique à annoter.
Exemple
Le code suivant génère cet avertissement, car l’utilisation est __deref_out_ecount(n)
ambiguë :
void ref(__deref_out_ecount(n) int **&buff, int &n)
L’annotation ci-dessus peut être interprétée comme suit :
référence à un tableau (de n) pointeurs vers des entiers (interprétation SAL1)
référence à un pointeur vers un tableau (de n) entiers (interprétation SAL2)
L’une des modifications suivantes peut corriger cet avertissement :
void ref(_Out_writes_(n) int **&buff, int &n)
// or
_At_(*buff), _Out_writes(n)) void ref(int **&buff, int &n)
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