Данное диагностическое правило добавлено по просьбе пользователей.
Анализатор позволяет обнаружить вызов функций, у которых существует '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.
Данная диагностика классифицируется как:
|