重命名名称空间 我已经做了很长时间的C++,但是今天早上我遇到了一个问题,我无法回答:“在C++中,可以为名字空间创建别名吗?”

重命名名称空间 我已经做了很长时间的C++,但是今天早上我遇到了一个问题,我无法回答:“在C++中,可以为名字空间创建别名吗?”,c++,namespaces,alias,C++,Namespaces,Alias,让我举个例子。假设我有以下标题: namespace old { class SomeClass {}; } 由于未明确说明的原因,必须成为: namespace _new { namespace nested { class SomeClass {}; // SomeClass hasn't changed } } 现在,如果我有一个引用SomeClass的旧代码库,我可以通过添加以下内容快速(直接)“修复”更改: namespace old { typedef

让我举个例子。假设我有以下标题:

namespace old
{
  class SomeClass {};
}
由于未明确说明的原因,必须成为:

namespace _new
{
  namespace nested
  {
    class SomeClass {}; // SomeClass hasn't changed
  }
}
现在,如果我有一个引用
SomeClass
的旧代码库,我可以通过添加以下内容快速(直接)“修复”更改:

namespace old
{
  typedef _new::nested::SomeClass SomeClass;
}
但是有没有一种方法可以将所有内容
\u new::nested
导入
old
,而不必明确地定义每种类型

类似于Python的东西
import*from…

多谢各位

using namespace new::nested;

或者,如果您确实想要一个真实的别名:

namespace on = one::nested;
.

这:

namespace old = newns::nested;

这似乎是您想要的。

new
可能是名称空间名称的一个不好的示例。;)第二个比第一个好得多。。。第一个名称空间不创建别名,而是从另一个名称空间引入符号,这可能会导致名称冲突或不想要的结果(如果
嵌套的
名称空间中的函数重载比当前名称空间中的重载更匹配,它将突然更改其选择)@David:Yes,但它似乎解决了OP似乎存在的问题。:)