带有空花括号的 C++ new init 触发 cppcheck uninitvar 错误

问题描述

请帮助我理解为什么 cppcheck 指责特定的代码test.cpp:6:11: error: Uninitialized variable: inst1 [uninitvar] 指的是 Test* inst1 = new Test{};

cppcheck --version = Cppcheck 1.90

#include <tuple>
class Test{};

auto foo()
{
    Test* inst1 = new Test{};
    Test* inst2 = new Test;
    Test* inst3 = new test();

    return std::make_tuple(inst1,inst2,inst3);
}

int main
{

}

根据 https://en.cppreference.com/w/cpp/language/value_initialization (){} 在这种情况下应该是相同的。

我编辑了描述,因为人们声称提供的片段是不真实的,对此深表歉意。这是一个变量名称的拼写错误

解决方法

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

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

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