如何避免使用命名空间std; 在C++中

Jus*_*tin 4 c++ linux gcc hp-ux

我在尝试将我的C++源代码从HP-UX移植到Linux时遇到了这个问题.当我尝试在Linux上编译C++源代码时,会发生的是它抱怨组件(来自标准C++库)不存在.使用命名空间std放置行; 在源代码的顶部似乎解决了这个问题.当我尝试在HP-UX上重新编译代码时,aCC编译器抱怨这里只有名称空间名称有效(它不认为std是有效的名称空间).我想知道是否有办法解决这个问题,以便源代码与HP-UX长期弃用的C++编译器和LINUX的GCC编译器二进制兼容.

mkb*_*mkb 6

这很糟糕,但你可以这样做:

#ifndef __HP_aCC
using namespace std;
#endif
Run Code Online (Sandbox Code Playgroud)

这里定义,我无法验证.