Avviso C28303
Per il parametro <di riferimento C++ parameter_name>, è stato trovato un operatore ambiguo
_Deref_
in 'annotazione'.
Questo avviso è simile all'avviso C28302 e viene segnalato quando viene usato un livello aggiuntivo di _Deref_
su un parametro.
SAL2 non richiede l'uso di un livello aggiuntivo di _Deref_
quando si gestiscono parametri di riferimento. Questa particolare annotazione è ambigua per quanto riguarda il livello di dereferenziazione che deve essere annotato. Potrebbe essere necessario utilizzare _At_
per fare riferimento all'oggetto specifico da annotare.
Esempio
Il codice seguente genera questo avviso perché l'uso di __deref_out_ecount(n)
è ambiguo:
void ref(__deref_out_ecount(n) int **&buff, int &n)
L'annotazione precedente può essere interpretata come:
riferimento a una matrice (di n) puntatori a numeri interi (interpretazione SAL1)
riferimento a un puntatore a una matrice (di n) numeri interi (interpretazione SAL2)
Una delle modifiche seguenti può correggere questo avviso:
void ref(_Out_writes_(n) int **&buff, int &n)
// or
_At_(*buff), _Out_writes(n)) void ref(int **&buff, int &n)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per