我的客户端有要求命名空间的编码标准,需要在单独的行上定义所有单独的名称和大括号。这会导致垂直空间消耗(这一点让团队中的一些开发人员感到厌烦):
namespace MyCompany
{
namespace MyProduct
{
namespace ThisFunctionalUnit
{
:
}
}
}考虑到它们的绝大多数代码都由完全包装在上面所示的层次结构中的文件组成,它们可以通过允许:
namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit
{
:
}}} // namespace MyCompany::MyProduct::ThisFunctionalUnit这与其他问题有关,但是可行的。但是,在我看来,如果C++首先允许按照以下方式对名称空间进行多层规范,那么整个问题就会消失。
namespace MyCompany::MyProduct::ThisFunctionalUnit
{
:
}我的问题是,为什么C++不允许这样做?这不可能是因为::可以在命名空间级别中使用,因为这会使using namespace无法工作。
有没有人知道为什么会这样,或者是否有可能被纠正?
发布于 2017-04-05 02:23:03
现在允许在C++17中使用嵌套命名空间定义:
namespace A::B::C {相当于:
namespace A { namespace B { namespace C {https://stackoverflow.com/questions/43220672
复制相似问题