我正在使用一个名为 stlport 的库,它重新定义了std
命名空间,如下所示:
# if defined (_STLP_REDEFINE_STD)
/* We redefine "std" to "stlport", so that user code may use std:: transparently */
# undef std
# define std STLPORT
# else
因此,无论我在代码中尝试使用的任何位置std::something
,它都会被替换为_STLP::something
.
如果我注释掉该#define std STLPORT
行,我的遗留项目的代码将无法编译(它依赖于 stlport)。
如果我不注释掉这一行,我试图添加的新库将无法编译,因为它使用std::
的分配器集与 stlport 使用的分配器不同。类型冲突。
在包含新库之前,我已经尝试#define STLPORT std
过一行,但是这个#define 似乎不起作用。
std
一旦像这样重新定义正常,有没有办法使用它?