我正在使用一些旧的C++代码,这些代码显然是在标准化之前iostream.h
进行的iostream
,并且从其开始,以及其他类似的代码.因此,我的相对现代版本的g ++在尝试时失败#include
等.
我很好奇是否可以使用预处理器通过命令行将实例更改iostream.h
为just iostream
.我试过附加-Diostream.h=iostream
g ++,但这似乎并没有改变include语句.
我猜测预处理器不可能修改include语句?
#include
声明有三种形式.
# include "h-char-sequence" new-line # includenew-line # include pp-tokens new-line
哪里pp-tokens
必须扩展到前两种形式之一.
你可以使用:
#include IOSTREAM
并使用-DIOSTREAM="
或-DIOSTREAM="
取决于您正在使用的编译器版本进行编译.
但是,你不能使用
#include
并编译-Diostream.h=iostream
.
这有几个问题.
iostream.h
不是有效的预处理器宏.
#include
声明的形式不适合宏观扩张.
如果您准备迁移代码库以使用新的C++标头,那么最好使用您喜欢的脚本方法将所有旧式C++标头更改为新的C++标头.