C6522
Aviso C6522: especificação de tamanho inválido: expressão deve ser do tipo integral
Este aviso indica que o tipo integral era esperado, mas o tipo de dados incorreto foi usado. Você pode usar as propriedades de anotação que aceitam o tamanho de um parâmetro em termos de outro parâmetro, mas você deve usar o tipo de dados correto. Para obter uma lista das propriedades de anotação, consulte Propriedades de anotação.
Exemplo
O código a seguir gera este aviso:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, double c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, double c);
Para corrigir esse aviso, use size_t para o ValidBytesParam tipo de dados de parâmetro, conforme mostrado no exemplo de código seguir:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, size_t c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, size_t c);