gcc 中是否有字符串文字到 bool 转换的警告

tov*_*tov 5 c++ gcc g++ compiler-warnings gcc-warning

在相当大的代码库中,我在 cpp 文件中发现了以下构造(重写的片段)

int main()
{
    bool b;
    //... some code ...;
    b = "False"
}
Run Code Online (Sandbox Code Playgroud)

这是完全合法的代码,但显然不是故意的。它很容易修复,但它自 2014 年以来一直存在而没有任何人注意到,因此显然不容易发现。

是否可以让 gcc 对此发出警告?

Vit*_*meo 4

g++ 7clang++ 5都不会发出警告-Wall -Wextra -Wpedantic

Clang 有一个名为 的警告-Wstring-conversion,可以捕获错误,但 gcc 没有。我简单地浏览了gcc 警告文档页面,没有找到任何可以捕获错误的内容。

在此输入图像描述

现场魔杖盒示例


我已在 gcc bug 跟踪器上提交了一份功能建议报告:#80151