gpt4 book ai didi

c++ - 如何访问嵌套在命名空间内的未命名空间变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:42 24 4
gpt4 key购买 nike

这个问题已经在链接中讨论过了 unnamed namespace within named namespace但是对于如何访问嵌套在命名空间下的未命名空间的变量没有提供完美的答案,以防两个变量相同

考虑这段代码

namespace apple {   
namespace {
int a=10;
int b=10;
}
int a=20;
}


int main()
{
cout<<apple::b; //prints 10
cout<<apple::a; // prints 20
}

未命名的命名空间 “变量 a” 总是隐藏的。如何访问未命名空间的“变量a”

在命名空间内声明未命名空间是否合法?

最佳答案

unnamed namespace "variable a" is always hidden. How to access "variable a" of unnamed namespace?

看起来您根本无法限定封闭命名空间之外的未命名命名空间。

好吧,这是解决歧义的方法:

namespace apple {   
namespace {
int a=10;
}

int getPrivateA() {
return a;
}

int a=20;
}

int main() {
cout<<apple::getPrivateA() << endl;
cout<<apple::a << endl;
}

参见 Live Demo .


虽然我知道这并不能完全回答您的问题(除了将未命名的命名空间嵌套在另一个命名空间中是否合法)。
我将不得不调查 c++ standard specification 是什么第 3.4 章和第 7.3 章的更多内容可以给你一个明确的答案,为什么你想做的事情是不可能的。

关于c++ - 如何访问嵌套在命名空间内的未命名空间变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com