为什么 vc++ 代码分析可能为空标记只在 const 成员函数上引发 C6011?

问题描述

这是最小的例子,在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 成员函数起作用。但不是非常量成员函数?显然这两个代码都会崩溃。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...