Compartilhar via


C6504

Aviso C6504: anotação inválido: propriedade só pode ser usada nos valores de ponteiro, um ponteiro para o membro ou tipo de matriz

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

Exemplo

O código a seguir gera este aviso porque a propriedade Null não pode ser usada em char tipo de dados. O motivo que isso ocorre é Deref = 1 se refere a 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, conforme mostrado no exemplo de código 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 o aviso de C6516 porque os conflitos de propriedade resultaram em uma anotação inválido.