当存在一行时,Cppcheck 不会输出警告:auto lambda = [](){};

Cppcheck does not output warnings when there exists a line: auto lambda = [](){};

本文关键字:lambda auto 警告 一行 存在 Cppcheck 输出      更新时间:2023-10-16

这是main.cpp的SSCCE:

int main(int argc, char** argv) {
    float a;
    auto lambda = [](){};
    return 0;
}

运行cppcheck --enable-all --std=c++11 *.cpp输出:

Checking main.cpp ...

删除auto lambda = [](){};会使 cppcheck 输出如下:

Checkin main.cpp
[main.cpp:3]: (style) Unused variable: a

不出所料。为什么auto lambda = [](){};使 Cppcheck 对未使用的变量消息保持沉默?这发生在 Cppcheck 1.82 中。

你好,我是 Cppcheck 开发人员。

检查器有一个缺点。因此,此缺失警告不是故意的。

我创建了这张票:http://trac.cppcheck.net/ticket/8433

供参考,这不是一个很难解决的问题。