次の方法で共有


C28303

警告 C28303: C++ の参照パラメーター <parameter_name> については、 _Deref_ のあいまいな演算子が <注釈> にあります。

C28302 の警告と同様にこの警告は _Deref_ のレベルの追加がパラメーターの使用時に報告されます。

SAL2 は、参照パラメーターを処理するとき _Deref_ のレベルの追加を使用する必要はありません。この特定の注釈は逆参照レベルがコメントされることになっているかに関するあいまいです。コメントされる特定のオブジェクトを参照するために _At_ を使用することが必要な場合もあります。

使用例

次のコードは __deref_out_ecount(n) の使用があいまいであるため、この警告が生成されます:

   void ref(__deref_out_ecount(n) int **&buff, int &n)

上記の注釈は次のように、またはデコードできる:

  • n)整数 (SAL1 解釈)へのポインターの配列への参照 (

  • n)整数 (SAL2 解釈)の配列へのポインターへの参照。

次のコードのどちらでは、この警告を修正します:

   void ref(_Out_writes_(n) int **&buff, int &n)
   // or
   _At_(*buff), _Out_writes(n)) void ref(int **&amp;buff, int &amp;n)