如何在 gcc 中为未使用的 lambda 表达式启用警告?

cig*_*ien 5 c++ lambda gcc-warning

下面的代码有一个拼写错误,我忘了用 来调用 lambda 表达式()

#include <iostream>

int main() 
{
    []{ std::cout << "hello"; };
}
Run Code Online (Sandbox Code Playgroud)

幸运的是,clang-Wunused-value对 lambda 表达式发出警告,因为它从未被评估/使用过。

但是 gcc 根本不发出任何警告。使用 gcc 编译时,有没有办法警告这个有问题的代码?

有一篇关于未使用的 lambda捕获 的相关帖子here是类似的,但这个问题是针对未使用的 lambda表达式本身的。

eer*_*ika 2

GCC 有警告选项-Wunused,可以启用有关未使用的代码片段的所有警告。最新的(主干)GCC 不会对未使用的带有 options 的 lambda 发出警告-Wunused -Wall -Wextra。因此我的结论是,目前没有办法启用警告来警告 GCC 中显示的程序。