2

此问题与通过 HP-UX 可执行文件进行移植的过程有关。在 HP-UX 上,可执行文件是使用 HP-UX ACC 编译器编译和链接的。鉴于编译器早在 1996 年,它似乎不支持标准 C++(今天使用的 C++ 标准)。相反,它基于 HP-UX 称为经典 C++ 的 C++ 标准进行编译。我想知道 GCC 是否支持经典 C++ 的选项?

谢谢。

4

1 回答 1

5

在 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;
于 2012-06-12T15:37:15.757 回答