C6509
Обновлен: Ноябрь 2007
C6509
Предупреждение C6509: недопустимая аннотация. Нельзя ссылаться на "return" из предварительного условия.
Это предупреждение означает, что оператор return [выражение] нельзя использовать в предварительном условии. Оператор return используется для прекращения выполнения функции и возврата управления вызывающей функции. Значение выражения, если есть выражение, возвращается вызывающей функции.
Функция может использовать оператор return для возврата значений, поэтому можно указывать ее в качестве значения свойства в условии post.
Пример
Это предупреждение возникает в следующем примере кода, поскольку "return" используется в предварительном условии.
// C
#include <CodeAnalysis\SourceAnnotations.h>
int f([SA_Pre(ValidElements="return")] char *pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
int f([Pre(ValidElements="return")] char *pc);
Чтобы исправить это предупреждение, используйте "return" используется в условии post, как показано в следующем примере кода.
// C
#include <CodeAnalysis\SourceAnnotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)]int f(
[SA_Post(ValidElements="return")] char *pc
);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
[returnvalue:Post(MustCheck=Yes)]int f(
[Post(ValidElements="return")] char *pc
);