【发布时间】:2013-11-07 04:08:39
【问题描述】:
我试图在我的代码中使用命名空间,所以我有一个如下所示的头文件:
#include <string>
namespace AppNamespace
{
class A
{
std::string name;
};
}
当我尝试编译它时,它说“'string' 不是 AppNamespace::std 的成员”。如果我删除字符串前面的std::,或者如果我写::std::string name,那么它会编译得很好。
这当然是一个简化的例子,我有很多头文件,并不是所有的头文件都显示这种行为。我不确定是什么原因造成的,我认为编译器也会尝试全局命名空间。
如果这很重要,我目前正在使用 Visual Studio 2012。
【问题讨论】:
-
由于某种原因,
AppNamespace是否包含名为std的内容? -
你能生成一个sscce.org 吗?还有一些你没有描述的事情。
标签: c++ namespaces