嵌套命名空间的 using 指令,但需要命名内部命名空间

`using` directive for nested namespaces, but require naming the inner namespace

假设我有一对像这样的嵌套命名空间:

namespace A
{
   namespace B
   {
      int foo = 0;
   }
}

如果 B 是 class,我可以写 using A::B 以避免每次都输入 A::。我试图用 B 作为命名空间做同样的事情,但编译器告诉我这是不允许的。

如果我写 using namespace A::B,这会将 B 包含的 的所有内容引入本地命名空间。我可以写 using namespace A,这将产生所需的结果(写 B::foo),但这将与 A.

中的所有其他内容一起出现

是否可以将 B 带入本地命名空间而无需 A 中的任何其他内容?

您可以使用不同的语法来做到这一点,namespace alias:

namespace B = A::B;