Compartilhar via


C6504

Aviso C6504: anotação inválido: propriedade pode ser usada somente em valores de ponteiro, ponteiro para o membro ou tipo de matriz

Este aviso indica o uso de uma propriedade em um tipo de dados incompatíveis.Para obter mais informações sobre os tipos de dados com o apoio de propriedades, consulte Propriedades de anotação.

Exemplo

O código a seguir gera este aviso porque a propriedade nulo não pode ser usada em char tipo de dados. O motivo que isso ocorre é Deref = 1 refere-se aos caracteres e não o ponteiro para os caracteres:

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

Para corrigir esse aviso, remover Deref = 1, sistema autônomo mostrado no código de exemplo a seguir:

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

O código defeituoso mostrado anteriormente também gera aviso C6516 porque a propriedade está em conflito resultou em uma anotação inválido.