名称查找失败 - C++ 命名空间

Name look-up fails - c++ namespaces

您能解释一下为什么在该代码中名称空间查找失败吗?

namespace B {
namespace C {
   int i;
}
}
namespace A {
namespace B {

void foo() {
    // why does not much A::B::C
    B::C::i = 3;   
}
}
}

是的,我知道 ::B::C::i 有效,因为我们指示了全局命名空间,但我很好奇为什么当我们不使用时查找不在 B::C 命名空间之外搜索: : B之前

提前致谢

在命名空间 ::A::B 中,B 的非限定查找查找命名空间 ::A::B 而不是查找命名空间 ::B。并且没有名称 ::A::B::C,因此在找到的 ::A::B 中对 C 的合格查找失败。