我需要从项目中删除 static_cast 的使用,并在添加 static_cast 时阻止正常编译,gcc 文档没有说明使用 static_cast 时如何启用警告。
我在 gcc 文档中搜索了 static_cast 关键字,但没有找到任何合适的内容。
我非常怀疑是否有任何编译器设置。
static_cast
是所使用语言的一个完全正常的功能,并且是优于 C 风格显式转换的首选方式。目前尚不清楚这样的警告有何目的。事实上,static_cast
通常用于告诉编译器not警告其他隐式转换,这些转换可能会出现问题,例如缩小转换。
也许有一些 clang-tidy 检查或类似的警告,如果
static_cast
转换也可以隐式进行,但这可能会干扰上面提到的约定。
您可能需要使用外部工具。像
grep -R static_assert .
这样简单的东西或一些 sed
/awk
以您想要的方式替换 static_assert
的使用可能就足够了。如果您需要实际修改已解析的 AST,您可能需要编写一些内容,例如基于 Clang 的库/工具。