我试图在我的代码中使用命名空间,所以我有一个看起来像这样的头文件:
#include <string>
namespace AppNamespace
{
class A
{
std::string name;
};
}
当我尝试编译它时,它说“'string' 不是 AppNamespace::std 的成员”。如果我删除std::
字符串前面的 ,或者如果我写::std::string name
,那么它会编译得很好。
这当然是一个简化的例子,我有很多头文件,并不是所有的头文件都显示这种行为。我不确定是什么原因造成的,我认为编译器也会尝试全局命名空间。
如果这很重要,我目前正在使用 Visual Studio 2012。