c++引用同级命名空间

发布于 2024-11-08 19:12:33 字数 361 浏览 0 评论 0原文

给出:

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
}}}

我需要指定命名空间的完整路径吗?有办法解决吗?

given:

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
}}}

Do I need to specify the full path of the namespace? Is there some way around it ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枯寂 2024-11-15 19:12:33

接下来应该可以工作:

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

Next should work :

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
还在原地等你 2024-11-15 19:12:33

我还没有尝试过,但据我记得

childa::hard_to_get_at   sibling;

应该在 childb 中工作,而不需要定义名称空间别名。这是C++命名空间解析的一个属性,它能够向上移动嵌套层次来搜索命名空间。

I have not tried it, but as far as I remember

childa::hard_to_get_at   sibling;

should work from within childb without the need for defining a namespace alias. this is a property of C++ namespace resolution, which is able to move up the hierarchy of nesting to search for namespaces.

从来不烧饼 2024-11-15 19:12:33

您可以在 childb 中使用命名空间别名

namespace childa = root::parent::childa;

,然后

childa::hard_to_get_at   sibling;

You can use a namespace alias in childb

namespace childa = root::parent::childa;

and then

childa::hard_to_get_at   sibling;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文