Warnung C28303
Für C++-Referenzparameter-parameter_name <>wurde ein mehrdeutiger
_Deref_
Operator für "annotation" gefunden.
Diese Warnung ähnelt der Warnung C28302 und wird gemeldet, wenn für einen Parameter eine zusätzliche Ebene _Deref_
verwendet wird.
SAL2 erfordert nicht die Verwendung einer zusätzlichen Ebene bei _Deref_
Bezugsparametern. Diese besondere Anmerkung ist mehrdeutig als die Ableitungsebene, die annotiert werden soll. Es kann erforderlich sein, auf _At_
das spezifische Objekt zu verweisen, das kommentiert werden soll.
Beispiel
Der folgende Code generiert diese Warnung, da die Verwendung __deref_out_ecount(n)
nicht eindeutig ist:
void ref(__deref_out_ecount(n) int **&buff, int &n)
Die oben genannte Anmerkung kann entweder folgendermaßen interpretiert werden:
ein Verweis auf ein Array (von n) Zeigern auf ganze Zahlen (SAL1-Interpretation)
einen Verweis auf einen Zeiger auf ein Array (von n) ganzen Zahlen (SAL2-Interpretation)
Eine der folgenden Änderungen kann diese Warnung korrigieren:
void ref(_Out_writes_(n) int **&buff, int &n)
// or
_At_(*buff), _Out_writes(n)) void ref(int **&buff, int &n)