C6518
avviso C6518: annotazione non valida: la proprietà WriteableElementsConst e WriteableBytesConst non può essere specificata come precondizione su buffer protetti da scrittura
L'avviso indica l'esistenza di un conflitto tra il valore della proprietà Access e una proprietà modificabile. Solitamente, ciò indica che una proprietà modificabile non dispone di accesso in scrittura al parametro annotato.
Esempio
Il codice seguente genera questo avviso in quanto la proprietà Access non consente l'accesso in scrittura:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Access=SA_Read)][SA_Pre(WritableElementsConst =9)] char* pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)][Pre(WritableElementsConst=9)] char* pc);
Per risolvere il problema, consentire l'accesso non protetto da scrittura al parametro, come illustrato nel codice seguente:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Access=SA_Write)][SA_Pre(WritableElementsConst =9)] char* pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Write)][Pre(WritableElementsConst=9)] char* pc);