Deref
Cada instância de um atributo Pre ou Post especifica um conjunto de propriedades para o parâmetro anotado ou valor de retorno em um nível específico de dereferência.O nível de desreferenciar é especificado pela propriedade Deref do atributo e todas as propriedades que aparecem depois que uma propriedade Deref são aplicadas a esse nível de desreferenciar.Por exemplo, dado um parâmetro p, um atributo com Deref =0 especifica as propriedades para p, Deref=1 especifica as propriedades para *p, Deref=2 especifica as propriedades para **p, e assim por diante.O valor da Deref deve ser maior que ou igual a 0 e menor ou igual a 3.
Observação: |
---|
O valor padrão para essa propriedade é 0. |
Para um parâmetro de tipo de referência, por exemplo, int& r, Deref = 0 aplica-se a própria referência; Deref = 1 aplica-se a referida - local, que é - o int Nesse caso.
Exemplo
O código a seguir especifica Deref = 1, que aplica a propriedade Access para o buffer apontado pelo ponteiro.
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ( [ SA_Pre ( Deref = 1, Access = SA_ReadWrite ) ] char *p );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ( [ Pre ( Deref = 1, Access = ReadWrite ) ] char *p );