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.