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

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

这是 SSCCEmain.cpp:

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

请注意,这不是一个很难解决的问题。