有没有办法在具有相同名称的新命名空间中嵌入类
Is there a way to embed a class in a new namespace with the same name?
我们试图在新命名空间后面隐藏一个类,但我们希望保留原始名称。
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;
}
相关文章:
- 使用 Clang++ 有没有办法将文件作为命名空间等包含?
- 有没有办法不使用命名空间中的项?
- 命名空间 std 没有成员any_of
- 有没有办法在不使用命名空间 std 或前缀 std:: 的情况下引用 cout?
- Catalina C++:使用<cmath>标头产生错误:全局命名空间中没有名为 'signbit' 的成员
- 命名空间 Win 没有成员"simpleControl"是什么意思
- Visual Studio 2017:命名空间"System"没有成员"Windows"
- 如何在两个不同的命名空间(但只写一次)中使用相同的标头定义,命名空间有不同的实现?
- 有没有办法转发声明命名空间或只是提前使其可见
- 使用 "::member" 引用全局命名空间有什么用吗?
- 有没有一种方法可以创建具有广义属性的命名空间
- 命名空间提升没有成员
- C++:有没有办法创建模板化命名空间
- 有没有办法在单独的 .h 和 .cpp 文件中定义在命名空间中声明的函数
- C++ 编译失败,并显示错误:命名空间中没有名为 'snprintf' 的成员'std'
- 为什么默认情况下全局命名空间中没有 C++14 个标准定义的文本?
- 一个命名空间有多个别名
- 与 MinGW STL 的 Clang (错误:全局命名空间中没有名为 'fgetws' 的成员)
- "using"命名空间和声明命名空间有什么区别?
- 命名空间"std"没有成员"sort"