警告 C6504: 無効な注釈です: プロパティは、ポインター、pointer-to-member、または配列型の値でのみ使用できます
この警告は、互換性のないデータ型に対してプロパティが使用されていることを示します。 プロパティでサポートされるデータ型の詳細については、「注釈のプロパティ」を参照してください。
使用例
次に示すコードの場合、Null プロパティは char データ型に対して使用できないため、この警告が生成されます。 そうなる原因は、Deref=1 が文字へのポインターではなく、文字を参照しているためです。
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Null=SA_Yes)] char* pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Null=Yes)] char* pc);
この警告を解決するには、次のサンプルコードに示すように Deref=1 を削除します。
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Null=SA_Yes)] char* pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Null=Yes)] char *pc);
上に示した修正前のコードでは、プロパティが競合しており、注釈が無効になるため、警告 C6516 も生成されます。