【问题标题】:`using` directive for nested namespaces, but require naming the inner namespace [duplicate]用于嵌套命名空间的`using`指令,但需要命名内部命名空间[重复]
【发布时间】:2020-05-20 19:25:37
【问题描述】:

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

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 中的所有其他内容?

【问题讨论】:

    标签: c++ namespaces


    【解决方案1】:

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

    namespace B = A::B;
    

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2015-01-08
      • 2011-02-26
      • 2011-01-06
      • 1970-01-01
      • 2018-02-03
      • 2022-10-14
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多