#c #code-analysis #sal
#c #анализ кода #sal
Вопрос:
Вот минимальный пример, запустите анализ кода в Visual studio 2019
#include <sal.h>
class CTest
{
public:
virtual void A() = 0;
virtual void B() const = 0;
_Check_return_ _Ret_maybenull_ static CTest* GetInstance()
{
return (CTest*)0;
}
};
void Test2()
{
auto a = CTest::GetInstance();
a->A(); // no warning ?
auto b = CTest::GetInstance();
b->B(); // warning C6011
}
Почему предупреждение C6011 влияет только на вызов функции-члена const нулевого указателя класса. но не для неконстантной функции-члена? Вероятно, оба кода завершатся сбоем.