有没有办法在c ++中禁用旧的c样式转换

shu*_*e87 24 c++ syntax casting

可能重复:
如何在我的C++源代码中查找(和替换)所有旧的C风格数据类型转换?

我正在重构一些旧的代码,我正在研究的项目有一个仅使用新的c ++样式转换的策略.我正在努力确保我不会错过任何方法,但目前我采用的方法非常粗糙,所以我想知道是否有任何方法可以使旧的c风格转换不能在c ++项目中编译?(或者如果不可能,至少给编译器警告)

Mar*_*utz 34

如果使用GCC,请添加-Wold-style-cast到命令行.这会发出警告,而不是错误,但您可以随时添加-Werror,这会将警告(所有警告)变为错误.

至于其他编译器,似乎没有其他编译器有这样的警告选项.

但这并不重要:GCC是自由软件,几乎可用于区分零和一的任何东西.只需将它与主编译器一起安装在工作站上,或安装到持续集成系统中,并仅将其用于此任务.您会发现手头有两个C++编译器一般非常方便.

如果安装GCC真的不适合你,你可能想看看如何在我的C++源代码中找到(并替换)所有旧的C风格数据类型转换?,讨论了一些替代方案.

  • 关于适用于所有警告的`-Werror`:您可以编写`-Werror = old-style-cast`来有选择地应用它. (4认同)