C28303
Warnung C28303: Für C++-Verweisparameter <parameter_name> wurde ein mehrdeutiger _Deref_ Operators in <Anmerkung> gefunden.
Diese Warnung Warnung, die dem C28302 ähnelt und wird gemeldet, wenn eine zusätzliche Ebene von _Deref_ für einen Parameter verwendet wird.
SAL2 erfordert keine die Verwendung eines zusätzlichen Ebene der _Deref_ bei der Behandlung von Verweisparameter.Auf diese spezifische Anmerkung ist mehrdeutig, über welchem Umfang Dereferenzieren ist für die Verwendung mit Anmerkungen versehen werden soll.Es ist möglicherweise notwendig, _At_ zu verwenden, um das spezifische Objekt mit Anmerkungen versehen werden soll, auf die verwiesen werden soll.
Beispiel
Im Folgenden Code wird diese Warnung generiert, da die Verwendung von __deref_out_ecount(n) nicht eindeutig ist:
void ref(__deref_out_ecount(n) int **&buff, int &n)
Der oben genannten Anmerkung wie ein interpretiert werden konnte:
ein Verweis auf ein Array von Zeigern (n) in ganze Zahlen (Interpretation SAL1)
ein Verweis auf einen Zeiger auf ein Array von Ganzzahlen (n) (Interpretation SAL2)
Ein beliebiger der folgenden Schritte können diese Warnung zu korrigieren:
void ref(_Out_writes_(n) int **&buff, int &n)
// or
_At_(*buff), _Out_writes(n)) void ref(int **&buff, int &n)