我已经做了很长时间的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 ...
类似的东西。
谢谢。
答案 0 :(得分:52)
using namespace new::nested;
或者如果你真的想要一个真正的别名:
namespace on = one::nested;
答案 1 :(得分:31)
此:
namespace old = newns::nested;
似乎就是你想要的。