次の方法で共有


C6504

警告 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 も生成されます。