我的理解是匿名名称空间是解决某些问题(即C#和Java用静态类解决的问题)的一种惯用的c ++方法。
在下面的示例中,我尝试访问在匿名名称空间中声明的std::string
,但是遇到了aString
“未命名类型”的编译时错误>
我尝试将相关行更改为std::string aString = "some text";
,但这导致编译器抱怨aString
含糊。
是否可以在这样的匿名名称空间中转发声明变量?
#include <iostream>
#include <string
namespace{
std::string aString;
}
aString = "some text";
int main()
{
std::cout << "aString = " << aString << std::endl;
return 0;
}