嵌套命名空间的 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;
假设我有一对像这样的嵌套命名空间:
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;