Deref
Aggiornamento: novembre 2007
Ogni istanza di un attributo Pre o Post specifica un insieme di proprietà per il valore restituito o per il parametro annotato a un determinato livello di risoluzione dei riferimenti. Il livello di risoluzione del riferimento viene specificato dalla proprietà Deref dell'attributo e da tutte le proprietà visualizzate dopo l'applicazione di una proprietà Deref a tale livello di risoluzione. Ad esempio, dato un parametro p, un attributo con Deref=0 specifica le proprietà per p, Deref=1 specifica le proprietà per *p, Deref=2 specifica le proprietà per **p e così via. Il valore della proprietà Deref deve essere superiore o uguale a 0 e inferiore o uguale a 3.
Nota: |
---|
Il valore predefinito per questa proprietà è 0. |
Per un parametro del tipo di riferimento, ad esempio, int& r, Deref=0 si applica al riferimento stesso; Deref=1 si applica alla posizione a cui viene fatto riferimento, che è int in questo caso.
Esempio
Nel codice riportato di seguito viene specificato Deref=1, che applica la proprietà Access al buffer a cui fa riferimento il puntatore.
// 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 );