C28303
avertissement C28303 : Pour le paramètre de référence C++ <parameter_name>, un opérateur ambigu _Deref_ a été trouvé sur l' <annotation>.
Cet avertissement est semblable à l'avertissement C28302 et est enregistré lorsqu'un niveau supplémentaire de _Deref_ est utilisé sur un paramètre.
SAL2 ne requiert pas l'utilisation d'un niveau supplémentaire de _Deref_ lors du traitement des paramètres de référence.Cette annotation particulière est ambiguë quant au niveau de déréférencement conçu pour ê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 de __deref_out_ecount(n) est ambigüe :
void ref(__deref_out_ecount(n) int **&buff, int &n)
L'annotation ci-dessus peut être interprétée comme suit :
une référence à un tableau (de n) pointeurs sur des entiers (interprétation SAL1)
une référence à un pointeur sur un tableau (de n) entiers (interprétation SAL1)
L'une ou l'autre des conditions 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)