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.