此问题与通过 HP-UX 可执行文件进行移植的过程有关。在 HP-UX 上,可执行文件是使用 HP-UX ACC 编译器编译和链接的。鉴于编译器早在 1996 年,它似乎不支持标准 C++(今天使用的 C++ 标准)。相反,它基于 HP-UX 称为经典 C++ 的 C++ 标准进行编译。我想知道 GCC 是否支持经典 C++ 的选项?
谢谢。
在 gcc 文档中没有找到类似的东西,但我可能弄错了。
但是,您可以使用以下两个准则(来自HP 文档)从 Classic 移植到 Standard C++:
(1.) IOstream 标头:
<iostream.h>
映射到<iostream>
<fstream.h>
映射到<fstream>
和可选<iostream>
<strstream.h>
映射到<strstream>
<iomanip.h>
映射到<iomanip>
<iosfwd>
请注意,如果只需要声明 ostream 和 istream 而不需要特定的插入和提取运算符,则可以使用新的头文件。这将取代使用以下内容的情况:
class ostream; // replace by #include <iosfwd>
ostream& operator<<(ostream&, foo); // change based on (2) below
(2.) 源映射:
执行以下一项(或多项)操作。这些更改适用于 IOstream 标头和容器标头。添加以下 using 指令。这适用于 -AA 或 -AP。
namespace std {} using namespace std;
cout << "hi guy" << endl;
添加特定的 using 声明。这仅适用于 -AA。
using std::cout;
using std::endl;
cout << "hi guy" << endl;
在每个符号前添加 std::。这仅适用于 -AA。
std::cout << "hi guy" << std::endl;