可能重复:
How to find (and replace) all old C-style data type casts in my C++ source code?
我目前正在重构一些旧代码,而我正在研究的项目只有使用新的c ++样式转换的策略。我正在努力确保我不会错过任何方法,但目前我采用的方法非常粗糙,所以我想知道是否有任何方法可以使旧的c风格转换不能在c ++项目中编译? (或者如果不可能,至少给编译器警告)
答案 0 :(得分:34)
如果您使用GCC,请在命令行中添加-Wold-style-cast
。这会发出警告,而不是错误,但您可以随时添加-Werror
,这会将警告(所有警告)变为错误。
至于其他编译器,似乎没有其他编译器有这样的警告选项。
但这并不重要:GCC是自由软件,几乎可用于区分零和一的任何东西。只需将它与主编译器一起安装在工作站上,或安装到持续集成系统中,并仅将其用于此任务。你会发现手头有两个C ++编译器非常方便。
如果安装GCC确实不适合您,您可能需要查看How to find (and replace) all old C-style data type casts in my C++ source code?,其中讨论某些替代方案。
答案 1 :(得分:2)
我建议使用this Perl script
。除了像。这样的异常情况
(无效**)及b.ComInterfaceCall
它似乎工作。