我在自己的代码中有一个命名空间核心,它与我正在使用的动态库的命名空间核心冲突.问题出现是因为我无法修改其中任何一个.第一个核心因为是我们团队项目的一部分,第二个核心因为是图书馆的一部分.有办法解决这种情况吗?
尝试将核心命名空间转换为子命名空间.
编辑:清理答案并添加代码.(很难在手机上做!)
这样您就可以访问每个"核心"命名空间.这也明确地显示了被引用的"核心".即使外部库具有相同的功能名称,您也会安全.
但是,您提到您实际上无法更改原始代码中的任何内容,因此您唯一的选择是使用不同的库并希望它没有"核心"命名空间.在我看来,说服你的团队更改代码可能会更容易.
// Your 'core' namespace, inside your own namespace.
namespace Mygame
{
namespace core
{
void Foo();
}
}
// Access both namespaces safely.
Mygame::core::Foo();
core::Foo();
Run Code Online (Sandbox Code Playgroud)