gpt4 book ai didi

c++ - 为什么两个不同的未命名命名空间可以在一个 cpp 文件中共存?

转载 作者:行者123 更新时间:2023-11-30 03:20:03 25 4
gpt4 key购买 nike

据说在一个翻译单元中只有一个唯一的未命名的名字。但是,下面的行仍然可以编译。

//test.cpp
namespace xxx{
namespace {
int x = 0;
}
}
namespace yyy{
namespace {
int x = 0;
}
}

我猜测嵌套未命名命名空间中的代码就像父命名空间中的代码一样,嵌套未命名命名空间没有任何意义。不知道对不对。

最佳答案

未命名的命名空间在其范围内是唯一的。例如

namespace named {
namespace {
int x = 0;
}
namespace {
int x = 0;
}
}

会导致错误。这同样适用于全局范围。

在您提供的情况下,xxxyyy 中的未命名命名空间在各自的范围内是唯一的,因此不存在名称冲突。

关于c++ - 为什么两个不同的未命名命名空间可以在一个 cpp 文件中共存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142662/

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