我们正在尝试隐藏新命名空间后面的类,但我们希望保留原始名称。
namespace first {
class Logger { ... };
}
namespace second {
using Logger = first::Logger;
}
错误:类型定义' Logger'与类型别名冲突 一样的名字 class Logger;
答案 0 :(得分:1)
是的,我们可以:
namespace first {
class Logger { };
}
namespace second {
typedef first::Logger Logger;
}
typedef is apparently equivalent to using(在C ++ 11中),更加狡猾。
答案 1 :(得分:1)
对 - o,这是由于我们自己的代码库中类型类Logger的前向声明。
namespace first {
class Logger { ... };
}
namespace second {
using Logger = first::Logger;
... some time later ...
class Logger;
}