我正在开发一个旧项目,该项目仍然包含已弃用的“#include iostream.h”。我知道iostream.h已弃用且不应使用,但此代码必须运行/编译的一些系统是运行CC的旧solaris机器,并且没有可用的iostream。我的问题是:如何让我更现代的g ++编译器接受iostream.h包含。
编辑:编译器找不到iostream.h文件,因此我假设该库的.h版本都不适用于g ++。
答案 0 :(得分:4)
最简单的解决方案可能是创建一个名为iostream.h
的本地头文件,其中只包含<iostream>
并导入名称空间std
。然后,为了让编译器允许#include <iostream.h>
,您可以将本地路径添加到包含文件搜索路径。对于g ++,这可行:
g++ -I local_folder [other flags] …
顺便提一句,您对
的评论...已弃用的“#include iostream.h”
不太正确:不推荐使用它,因为它从来都不是合法的C ++。
答案 1 :(得分:4)
我退后一步,写下你在任何地方使用的另一个中间标题,而不是像:
#if defined(sun) || defined(__sun)
# if defined(__SVR4) || defined(__svr4__)
/* Solaris */
#include <iostream>
# else
/* SunOS */
#include "iostream.h"
# endif
#else
/* Sane, modern system */
#include <iostream>
#endif