Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中的多层命名空间规范_C++_Namespaces_Coding Style - Fatal编程技术网

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

C++中的多层命名空间规范,c++,namespaces,coding-style,C++,Namespaces,Coding Style,我的一个客户机有编码标准,要求名称空间需要在单独的行中定义所有单独的名称和大括号。这导致垂直空间占用了一个点,这让团队中的一些开发人员感到恼火: namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit { : } } } 考虑到他们的绝大多数代码都由完全包装在上述层次结构中的文件组成,他们可以通过允许: nam

我的一个客户机有编码标准,要求名称空间需要在单独的行中定义所有单独的名称和大括号。这导致垂直空间占用了一个点,这让团队中的一些开发人员感到恼火:

namespace MyCompany
{
    namespace MyProduct
    {
        namespace ThisFunctionalUnit
        {
            :
        }
    }
}
考虑到他们的绝大多数代码都由完全包装在上述层次结构中的文件组成,他们可以通过允许:

namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit
{
    :
}}} // namespace MyCompany::MyProduct::ThisFunctionalUnit
这还有其他问题,但可行。然而,在我看来,如果C++首先允许名称空间的多层规范,那么,整个问题将消失,沿着:

namespace MyCompany::MyProduct::ThisFunctionalUnit
{
    :
}
我的问题是,为什么C++不允许这样做?这不可能,因为::可以在命名空间级别内使用,因为这样会使使用命名空间变得不可行


有人知道为什么会出现这种情况,或者是否有可能得到纠正吗?

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

namespace A::B::C {
这相当于:

namespace A { namespace B { namespace C {