C6518
Aviso C6518: conflito de anotação: WriteableElementsConst e WriteableBytesConst não podem ser especificados em buffers que não são graváveis
Este aviso indica que existe um conflito entre Access valor da propriedade e uma propriedade gravável. Isso normalmente indica que uma propriedade gravável não tem acesso de gravar para o parâmetro sendo anotado.
Exemplo
O código a seguir gera este aviso porque o Access propriedade não permite acesso de gravar:
// 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);
Para corrigir esse aviso, permitir o acesso gravável ao parâmetro, sistema autônomo mostra o código a seguir:
// 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);