gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 05:12:40 26 4
gpt4 key购买 nike

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

namespace MyCompany
{
namespace MyProduct
{
namespace ThisFunctionalUnit
{
:
}
}
}

鉴于他们的绝大部分代码都由完全包裹在上述层次结构中的文件组成,他们可以通过允许:

namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit
{
:
}}} // namespace MyCompany::MyProduct::ThisFunctionalUnit

这会带来其他问题,但可行。然而,在我看来,如果 C++ 首先允许命名空间的多层规范,那么整个问题就会消失,如下所示:

namespace MyCompany::MyProduct::ThisFunctionalUnit
{
:
}

我的问题确实是,为什么 C++ 允许这样做?这不可能是因为 :: 可以在 namespace 级别内使用,因为那会使 using namespace 无法使用。

有谁知道为什么会这样,或者是否有可能得到纠正?

最佳答案

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

namespace A::B::C {

相当于:

namespace A { namespace B { namespace C {

关于c++ - C++ 中的多层命名空间规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com