2

この質問は、HP-UX 実行可能ファイルを移植するプロセスに関連しています。HP-UX では、実行可能ファイルは HP-UX ACC コンパイラを使用してコンパイルおよびリンクされています。コンパイラが 1996 年にさかのぼることを考えると、標準 C++ (現在使用されている C++ の標準) をサポートしているようには見えません。むしろ、HP-UX がクラシック C++ と呼ぶ C++ の標準に基づいてコンパイルします。GCC が従来の C++ のオプションをサポートしているかどうか疑問に思っていましたか?

ありがとう。

4

1 に答える 1

5

gccドキュメントでそのようなものは見つかりませんでしたが、私は間違っている可能性があります。

ただし、次の2つのガイドライン( HPのドキュメントから)を使用して、ClassicからStandardC++に移植できます。

(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.)ソースマッピング:

次の1つ(または複数)を実行します。これらの変更は、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 に答える