【发布时间】:2021-06-02 10:58:28
【问题描述】:
如果有两个命名空间Foo 和Bar,并且Bar 内部有一个命名空间Foo。如果我从Bar 内部引用变量Foo::i,它将在Foo 和Bar::Foo 中搜索i。如果没有,当i 在Bar::Foo 中不存在时,是否可以让编译器在两个命名空间中搜索?
更具体地,在下面的示例中,我试图在 b 中的命名空间 a 中引用变量 i,而不添加额外的 ::。我知道输入:: 有效,我正在尝试看看是否有其他方法可以解决这个问题。
#include <iostream>
#include <string>
namespace a {
int i = 1;
}
namespace b {
namespace a {
}
namespace c {
int j = a::i; // Doesn't work, need to use ::a::i;
}
}
int main()
{
std::cout << b::c::j << "\n";
}
【问题讨论】:
标签: c++ namespaces