C++ 引用同级命名空间
c++ referring to a sibling namespace
给定:
namespace root { namespace parent { namespace childa
class hard_to_get_at{};
}}}
namespace root { namespace parent { namespace childb
// how do I refer refer to namespace childb relative to the current namespace ?
..::hard_to_get_at instance_of_childa_class; // psuedo syntax
}}}
是否需要指定命名空间的完整路径?有没有办法解决它?
接下来应该工作:
namespace root{
namespace parent{
namespace childb{
// some function where you want to use class hard_to_get_at
void foo()
{
childa::hard_to_get_at obj;
// do stuff
}
} // namespace childb
} // namespace parent
} // namespace root
我没有尝试过,但据我所知
childa::hard_to_get_at sibling;
应该从childb
内部工作,而无需定义命名空间别名。 这是C++命名空间解析的属性,它能够向上移动嵌套层次结构以搜索命名空间。
您可以在childb
中使用命名空间别名
namespace childa = root::parent::childa;
然后
childa::hard_to_get_at sibling;
相关文章:
- 不同C++文件中未命名命名空间中的名称可以引用同一个命名事物吗?
- 命名空间中未引用的函数
- 有没有办法在不使用命名空间 std 或前缀 std:: 的情况下引用 cout?
- 使用多个命名空间对 vtable 的未定义引用
- 在 c++ 中在运行时声明对命名空间的引用
- 如何在命名空间中引用用户定义的文本运算符
- 即使在使用命名空间指令后也没有明确的引用错误
- 使用 "::member" 引用全局命名空间有什么用吗?
- 对"vtable for "命名空间继承的未定义引用 对"类型信息"的未定义引用
- 命名空间中的内联函数提供对C++的未定义引用
- cpp:关于未定义引用"(匿名命名空间)::CPassant::NbCPassant"的说明
- 3 文件项目中未定义引用中的 C++ 命名空间
- 引用封闭命名空间
- 您可以使用没有 :: 的命名空间引用其他类中的函数吗?
- 从另一个类引用命名空间
- 如何为匿名命名空间中未引用的本地函数生成警告
- 对 C++ 中命名空间的未定义引用
- 引用命名空间中的结构类型
- (C++)不能引用命名空间内的枚举类
- 命名空间和未定义的引用