警告 C6516

無効な注釈: 'name' 属性にプロパティが指定されていない

Note

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

解説

この警告は、属性でプロパティが指定されなかったか、指定されたプロパティが無効であることを示します。そのため、属性を完全と見なすことはできません。

コード分析名: NO_PROPERTIES_ON_ATTRIBUTE

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);