为什么我不能访问在匿名名称空间中声明的std :: string?

时间:2019-10-25 18:45:27

标签: c++ namespaces

我的理解是匿名名称空间是解决某些问题(即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;
}

0 个答案:

没有答案