2012-11-08 79 views
0

我的项目冲突使用在头文件中的一个已定义的“ERRC”名称与标准库

typedef int    errc; 

我想在项目中使用STL,但是当我添加STL的头文件,我得到名称的第三方模块自从它在标准库中的类名称以来,errc发生冲突。

error C2872: 'errc' : ambiguous symbol 

我真的不希望改变第三方模块,有没有什么办法可以来解决这个问题,并在项目标准库的工作?

+0

是不是'std'的'errc'一部分?这就是命名空间的用途。 – chris

+9

你唯一需要改变的是从你的文件中删除'using namespace std;'。 – Praetorian

+0

是的,但由第三方模块设计/命名不佳,他们已经使用它在我的控制之外 – zar

回答

0

文件

using namespace std; 

在不使用,但你仍然可以包含到功能,说

void f() 
{ 
    using namespace std; 

    cout<<endl; 
}