微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带有空花括号的 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 举报,一经查实,本站将立刻删除。