Deref
Jede Instanz eines Pre-Attributs oder Post-Attributs gibt Eigenschaften für den Parameter oder Rückgabewert mit Anmerkungen auf einer bestimmten Dereferenzierungsebene an. Die Dereferenzierungsebene wird durch die Deref-Eigenschaft des Attributs angegeben, und alle nach einer Deref-Eigenschaft angegebenen Eigenschaften werden auf diese Dereferenzierungsebene angewendet. Beim Parameter p gibt ein Attribut mit Deref=0 die Eigenschaften für p an, mit Deref=1 die Eigenschaften für *p, mit Deref=2 die Eigenschaften für **p usw. Der Deref-Wert sollte größer oder gleich 0 und kleiner oder gleich 3 sein.
Tipp
Der Standardwert für diese Eigenschaft ist 0 (null).
Bei einem Parameter des Verweistyps, z. B. int& r, gilt Deref=0 für den Verweis, während Deref=1 für den Speicherort gilt, auf den verwiesen wird, in diesem Fall int.
Beispiel
Im folgenden Code wird Deref=1 angegeben, wodurch die Access-Eigenschaft auf den Puffer angewendet wird, auf den mit dem Zeiger verwiesen wird.
// 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 );