首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中的多层命名空间规范

C++中的多层命名空间规范
EN

Stack Overflow用户
提问于 2017-04-05 02:14:16
回答 1查看 73关注 0票数 0

我的客户端有要求命名空间的编码标准,需要在单独的行上定义所有单独的名称和大括号。这会导致垂直空间消耗(这一点让团队中的一些开发人员感到厌烦):

代码语言:javascript
复制
namespace MyCompany
{
    namespace MyProduct
    {
        namespace ThisFunctionalUnit
        {
            :
        }
    }
}

考虑到它们的绝大多数代码都由完全包装在上面所示的层次结构中的文件组成,它们可以通过允许:

代码语言:javascript
复制
namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit
{
    :
}}} // namespace MyCompany::MyProduct::ThisFunctionalUnit

这与其他问题有关,但是可行的。但是,在我看来,如果C++首先允许按照以下方式对名称空间进行多层规范,那么整个问题就会消失。

代码语言:javascript
复制
namespace MyCompany::MyProduct::ThisFunctionalUnit
{
    :
}

我的问题是,为什么C++不允许这样做?这不可能是因为::可以在命名空间级别中使用,因为这会使using namespace无法工作。

有没有人知道为什么会这样,或者是否有可能被纠正?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-05 02:23:03

现在允许在C++17中使用嵌套命名空间定义:

代码语言:javascript
复制
namespace A::B::C {

相当于:

代码语言:javascript
复制
namespace A { namespace B { namespace C {
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43220672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档