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


C6516

предупреждение C6516: недопустимая аннотация. Для атрибута <имя> не указаны свойства.

ПримечаниеПримечание

Это предупреждение возникает только в коде, который использует устаревшую версию языка аннотаций исходного кода (SAL).Рекомендуется переносить код для использования последней версии SAL.Дополнительные сведения см. в разделе Использование аннотаций SAL для сокращения количества дефектов в коде C/C++.

Это предупреждение означает, что либо в атрибуте не было указано свойство, либо указано недопустимое свойство. Поэтому атрибут не является полным.

Пример

Это предупреждение создается в следующем коде, поскольку свойство Deref=1 определяет только косвенный уровень, но для программы анализа этой информации недостаточно.

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1)] char* pc);

Чтобы устранить это предупреждение, требуется другой свойство, например Access, которое будет указывать действия для элементов.В следующем коде данное предупреждение устраняется:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Access=SA_Read)] char* pc); 

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)] char* pc);