C6521
Actualización: noviembre 2007
C6521
Advertencia C6521: Especificación de tamaño no válida: el operador * únicamente se puede aplicar a tipos de puntero
Esta advertencia indica un uso incorrecto del operador * en una propiedad de anotación que acepta el tamaño de un parámetro en términos de otro parámetro. Esta advertencia se genera si el tipo del parámetro size no es de puntero y se utiliza un operador * para eliminar sus referencias. Sin embargo, puede utilizar el operador * si el parámetro size se pasa como tipo de puntero.
Ejemplo
El código siguiente genera esta advertencia:
// 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 corregir esta advertencia, elimine el operador * del valor de la propiedad WritableElements o pase un puntero a size_t. El código siguiente utiliza 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);