C++ 如何扩展指定的命名空间

C++ 如何扩展指定的命名空间,c++,c++11,namespaces,c++14,c++17,C++,C++11,Namespaces,C++14,C++17,我想通过一个实例来解释我的问题。我使用的是第三方库,它有自己的名称空间。我想导入这个库的一部分,在下面提到的名称空间中有自己的名称空间 namespace library { namespace part { } } 当前项目中还有一个层次结构。我想用另一个名称导入并扩展库::part到我的项目中。我试着做到以下几点: #include <library/part> namespace project { namespace my_part = library::pa

我想通过一个实例来解释我的问题。我使用的是第三方库,它有自己的名称空间。我想导入这个库的一部分,在下面提到的名称空间中有自己的名称空间

namespace library {
  namespace part {
  }
}
当前项目中还有一个层次结构。我想用另一个名称导入并扩展库::part到我的项目中。我试着做到以下几点:

#include <library/part>

namespace project {
  namespace my_part = library::part;
}

namespace project {
  namespace my_part {
    void my_extension_1();
    void my_extension_2();
  }
}
#包括
命名空间项目{
名称空间my_part=library::part;
}
命名空间项目{
名称空间我的部分{
使我的_扩展名_1()无效;
使我的_扩展名_2()无效;
}
}
该场景可以使用该语言的当前工具完成吗?如果没有,应如何解决?还是不行,为什么

编辑:错误消息gcc 5.3.0转储:

错误:命名空间“project::my_part”的声明冲突


编辑:有一个关于扩展原始名称空间的建议,但这是我要求的library::part用户不应该直接访问我添加的函数。

我相信您希望创建一个包含
library::part
包含的所有内容,除此之外,没有 将更多内容放入
library::part
。像这样

namespace library {
    namespace part {
        const int library_part_i = 123;
    }
}

namespace project {
    namespace part {
        using namespace library::part;
        void my_extension_1(){};
        void my_extension_2(){};
    }
}

int main()
{
    // const int i = library_part_i;    <- Does not compile
    // const int i = project::library_part_i; <- Does not compile
    const int i = project::part::library_part_i;
    // library::part::my_extension_1();  <- Does not compile
    project::part::my_extension_2();
    return 0;
}
命名空间库{
名称空间部分{
const int library_part_i=123;
}
}
命名空间项目{
名称空间部分{
使用名称空间库::part;
作废我的_扩展名_1(){};
作废我的_扩展名_2(){};
}
}
int main()
{
//const int i=库第i部分;