此问题涉及通过HP-UX可执行文件进行移植的过程。在HP-UX上,可执行文件使用HP-UX ACC编译器进行编译和链接。鉴于编译器早在1996年就已经出现,它似乎并不支持标准的C++(今天使用的C++标准)。而是根据HP-UX调用经典C++的C++标准进行编译。我想知道GCC是否支持经典C++的选项?GCC编译器是否支持经典的C++?
谢谢。
此问题涉及通过HP-UX可执行文件进行移植的过程。在HP-UX上,可执行文件使用HP-UX ACC编译器进行编译和链接。鉴于编译器早在1996年就已经出现,它似乎并不支持标准的C++(今天使用的C++标准)。而是根据HP-UX调用经典C++的C++标准进行编译。我想知道GCC是否支持经典C++的选项?GCC编译器是否支持经典的C++?
谢谢。
在gcc文档中没有找到类似的内容,但我可能弄错了。
但是,您可以端口从经典到标准C++,使用以下两种准则(从HP documentation):
(1)的iostream头:
<iostream.h>
映射到<iostream>
<fstream.h>
地图到<fstream>
和可选的<iostream>
<strstream.h>
映射到<strstream>
<iomanip.h>
映射到<iomanip>
注意,如果需要的ostream和istream的只是声明,而不是具体的插入和提取运算符的新的头文件<iosfwd>
可以使用。这将代替其中使用下面的情况:
class ostream; // replace by #include <iosfwd>
ostream& operator<<(ostream&, foo); // change based on (2) below
(2)来源的映射:
执行一个(或多个)以下的。这些更改适用于IOstream标头和容器标头。 添加以下使用指令。这将适用于-AA或-AP。
namespace std {} using namespace std;
cout << "hi guy" << endl;
使用声明添加特定项。这只适用于-AA。
using std::cout;
using std::endl;
cout << "hi guy" << endl;
在每个符号前加上std ::。这只适用于-AA。
std::cout << "hi guy" << std::endl;
你的意思是,你应该期待什么可移植性问题取得源时,从HP-UX到符合标准的编译一个标准?你应该期待什么编译器特有的snafu,你能解决它们吗? – sehe