重命名命名空间

时间:2011-05-24 09:58:21

标签: c++ namespaces alias

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

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

namespace old
{
  class SomeClass {};
}

其中,由于未说明的原因必须成为:

namespace _new
{
  namespace nested
  {
    class SomeClass {}; // SomeClass hasn't changed
  }
}

现在,如果我有一个引用SomeClass的旧代码库,我可以通过添加以下内容快速(并且肮脏地)“修复”更改:

namespace old
{
  typedef _new::nested::SomeClass SomeClass;
}

但有没有办法将{strong>所有内容从_new::nested导入old,而不必明确地typedef显示每种类型?

与Python import * from ...类似的东西。

谢谢。

2 个答案:

答案 0 :(得分:52)

using namespace new::nested;

Example at Ideone

或者如果你真的想要一个真正的别名:

namespace on = one::nested;

Example at Ideone

答案 1 :(得分:31)

此:

namespace old = newns::nested;

似乎就是你想要的。