Поделиться через


Deref

Каждый экземпляр пред- и постатрибута задает набор свойств для параметра или возвращаемого значения, к которому создается заметка, на определенном уровне разыменования. Уровень разыменования задается свойством Deref атрибута, и все свойства, следующие за свойством Deref, применяются к данному уровню разыменования. Например, в случае использования параметра "p" атрибут со значением Deref=0 задает свойства для параметра "p", со значением Deref=1 задает свойства для параметра "*p", со значением Deref=2 задает свойства для параметра "**p" и так далее. Значение свойства Deref должно быть больше или равно 0 и меньше или равно 3.

Примечание

По умолчанию значением данного свойства является 0.

Для параметра ссылочного типа, например int& r, Deref=0 применяется к самой ссылке, а Deref=1 применяется к месту, на которое приводится ссылка и которым в данном случае является int.

Пример

В следующем примере кода задано значение Deref=1, применяющее свойство Access к буферу, на который наведен указатель.

// 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 );

См. также

Основные понятия

Общие сведения о заметках