我正在开发一个使用许多第三方库的大型项目。由于这个事实,我遇到了一些模棱两可的错误。某些函数在全局名称空间中定义,也在不同的名称空间中定义。
我知道你可以指定“使用”来说明要使用哪个命名空间,但我不知道如何为文件指定它,而不在每个错误前加上“:”。
如果有人知道某种方式,或者有更好的方法,我就全都听见了。
背景
如果我需要非全局命名空间,那就不会有问题了,因为我可以使用“使用”这个名称空间...好奇是否有一种方法可以使用全局名称空间“使用”参考
答案 0 :(得分:1)
如果在两个不同的命名空间下有两个相同名称和参数化的函数,则不能:
using namespace x;
using namespace y;
因为编译时会出现歧义错误。
选项是使用x ::或y ::前置函数或者命名空间:
int test( void )
{
using namespace x;
}
int test1( void )
{
using namespace y;
}
当然,只有在单个函数中不使用两个名称空间时,这才有效。
更新: 指定“全局”命名空间的唯一方法是使用::
预先添加函数调用答案 1 :(得分:1)
在某些情况下,有助于重新排列标题,因此使用全局命名空间的标题位于前面 -