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

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

本文关键字:quot 命名空间 内部 指令 using 嵌套      更新时间:2023-10-16

>假设我有一对嵌套命名空间,如下所示:

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

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

如果我写using namespace A::B,这会将B中包含的所有内容引入本地命名空间。我可以写using namespace A,这将产生预期的结果(写B::foo(,但这会在A中随其他所有内容一起出现。

是否可以将B带入本地命名空间,而无需A其他所有内容?

您可以使用不同的语法(命名空间别名(执行此操作:

namespace B = A::B;