我们试图在新命名空间后面隐藏一个类,但我们希望保留原始名称。
namespace first {
class Logger { ... };
}
namespace second {
using Logger = first::Logger;
}
错误:类型"记录器"的定义与 同名 类记录器;
是的,我们可以:
namespace first {
class Logger { };
}
namespace second {
typedef first::Logger Logger;
}
typedef 显然等同于使用(在 C++11 中),只是更笨拙。
Right-o,这是由于我们自己的代码库中类型类 Logger 的前向声明。
namespace first {
class Logger { ... };
}
namespace second {
using Logger = first::Logger;
... some time later ...
class Logger;
}