C6521
Aviso C6521: especificação de tamanho inválido: * o operador só pode ser aplicado aos tipos de ponteiro
Este aviso indica um uso incorreto do * operador em uma propriedade de anotação que aceita o tamanho de um parâmetro em termos de outro parâmetro. Esse aviso é gerado se o parâmetro size é um tipo não ponteiro e um * a referência é usado. No entanto, você pode usar o * operador se o parâmetro size é passado como o tipo de ponteiro.
Exemplo
O código a seguir gera este aviso:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t c);
Para corrigir esse aviso, excluir o * operador do valor da propriedade WritableElements ou passar um ponteiro para size_t. O código a seguir usa size_t * c:.
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t *c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t *c);