V2002. Consider using the 'Ptr' version of the 'foo' function here.
Данное диагностическое правило добавлено по просьбе пользователей.
Анализатор позволяет обнаружить вызов функций, у которых существует 'Ptr' аналог. Имеются в виду функции, имеющие в составе своего названия суффикс 'Ptr', такие как: 'SetClassLongPtr', 'DSA_GetItemPtr'.
Рассмотрим исходный код:
void foo(int a);
void fooPtr(int a, bool b);
....
void test()
{
foo(1); // V2002
}
В месте вызова функции 'foo', будет выдано предупреждение V2002, так как имеется функция с тем же именем, но оканчивающаяся на 'Ptr'. Функция 'foo2' не имеет альтернативного варианта, и предупреждение выдаваться не будет.
Сообщение V2002 будет также выдано для случая:
void fooA(char *p);
void fooPtrA(char *p, int x);
....
void test()
{
fooA(str); // V2002
}
Предупреждение не выдается в случае, когда вызов одноименной функции происходит из её расширенной версии:
class A
{
....
void foo() { .... };
void fooPtr()
{
foo(); // ok
}
....
};
Родственным диагностическим сообщением является V2001.
Данная диагностика классифицируется как:
|