C28303
avviso C28303: Per il parametro-riferimento di C++ <parameter_name>, un operatore ambiguo _Deref_ è stato trovato in <annotation>.
L'avviso simile all'avviso C28302 viene visualizzato quando un ulteriore livello di _Deref_ viene utilizzato su un parametro.
SAL2 non richiede l'utilizzo di un ulteriore livello di _Deref_ quando si gestiscono i parametri di riferimento.Questa particolare voce è ambigua riguardo a quale livello di dereferenziazione deve essere annotato.Può essere necessario utilizzare _At_ per fare riferimento all'oggetto specifico da annotare.
Esempio
Il codice seguente genera questo avviso in quanto l'utilizzo di __deref_out_ecount(n) è ambiguo:
void ref(__deref_out_ecount(n) int **&buff, int &n)
L'annotazione sopra potrebbe essere interpretata come:
un riferimento a un array di (n) puntatori a Integer (interpretazione SAL1)
un riferimento a un puntatore a un array di (n) numeri interi (interpretazione SAL2)
Una delle seguenti risolve il problema:
void ref(_Out_writes_(n) int **&buff, int &n)
// or
_At_(*buff), _Out_writes(n)) void ref(int **&buff, int &n)