c – 在gcc中是否存在字符串文字到bool转换的警告

在一个非常大的代码库中,我在cpp文件中找到了以下构造(重写的片段)

int main()
{
    bool b;
    //... some code ...;
    b = "False"
}

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

有可能让gcc对此发出警告吗?

最佳答案 g 7和clang 5都没有警告-Wall -Wextra -Wpedantic.

Clang有一个叫做-Wstring-conversion的警告会抓住错误,但是gcc没有它.我简要地浏览了一下the gcc warning documentation page并没有找到任何可以解决错误的东西.

《c – 在gcc中是否存在字符串文字到bool转换的警告》

live wandbox example

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

点赞