C6517
Mise à jour : novembre 2007
C6517
Avertissement C6517 : conflit d'annotation : ValidElementsConst et ValidBytesConst peuvent ne pas être spécifiées sur les buffers qui ne sont pas lisibles
Cet avertissement indique que les propriétés ValidElementsConst et ValidBytesConst ne disposent pas de l'accès en lecture requis. Vous ne pouvez pas utiliser ces propriétés pour annoter un paramètre sans fournir un accès en lecture.
Exemple
Le code suivant génère cet avertissement car l'accès en lecture n'est pas autorisé sur la mémoire tampon :
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_Write )] char* buffer );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=Write )] char* buffer );
Pour corriger cet avertissement, autorisez un accès en lecture comme indiqué dans le code suivant :
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidBytesConst=10 )][SA_Pre( Deref=1, Access=SA_ReadWrite )] char* buffer );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre( ValidBytesConst=10 )][Pre( Deref=1, Access=ReadWrite )] char* buffer );