重命名名称空间 我已经做了很长时间的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似乎存在的问题。:)