C6516

警告 C6516: 無効な注釈です: <name> 属性にはプロパティが指定されていません

Note

この警告は、非推奨バージョンのソース コード注釈言語 (SAL) を使用しているコードでのみ発生します。 コードを移植して、最新バージョンの SAL を使用することをお勧めします。 詳細については、「SAL 注釈を使って C/C++ のコード障害を減らす方法」を参照してください。

この警告は、属性にプロパティが指定されていないか、指定されたプロパティが無効かどうかを示します。したがって、属性は完了と見なされません。

Deref=1 は間接参照のレベルのみを指定していますが、この情報だけでは分析ツールには役立たないので、次のコードではこの警告が生成されます。

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1)] char* pc);

この警告を修正するには、Access などの別のプロパティを使用して、参照されていない項目に適用する必要がある項目を分析ツールに示す必要があります。 このエラーを修正するコード例を次に示します:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Access=SA_Read)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)] char* pc);