如何在不使用'using'的情况下缩短C ++头文件中的命名空间缩进?

时间:2012-05-22 12:34:31

标签: c++ coding-style namespaces

如果使用名称空间来分离模块/结构化,则头文件中的嵌套和缩进会显着增加。有没有办法以较短的方式编写以下代码?

namespace A
{
    namespace B
    {
        namespace C
        {
            namespace D
            {
                namespace E
                {
                    template <typename T>
                    public class X
                    {
                        public: ...

e.g。像

namespace A::B::C::D::E
{
  template<typename T> ...
}

在c ++的头文件中?

2 个答案:

答案 0 :(得分:5)

不,之前在不同的时间和地点建议过嵌套的命名空间语法但是无效。

你不需要缩进

namespace A { namespace B { namespace C {
// ...
} } } // namespace A::B::C

答案 1 :(得分:2)

您可以使用命名空间别名。这不适用于扩展现有的命名空间,而是更容易访问。

您可以使用宏来扩展现有的命名空间,您需要执行此操作,您可能拥有比您需要或想要的更深的命名空间层次结构。