与第三方头文件相关的C++Builder歧义错误

C++ Builder Ambiguity Error Relating to 3rd Party Header Files

本文关键字:C++Builder 歧义 错误 第三方 文件      更新时间:2023-10-16

我正在处理一个大型项目,该项目使用了许多第三方库。由于这个事实,我遇到了一些歧义错误。一些函数在全局名称空间中定义,也在不同的名称空间中。

我知道你可以指定"using"来表示要使用哪个命名空间,但我不知道如何为文件指定它,而不在每个错误前加上":"。

如果有人知道一种方法,或者有更好的方法,我会洗耳恭听。

背景:

如果我需要非全局名称空间,这不会是一个问题,因为我可以在该名称空间中使用"using"。。。好奇是否有一种方法可以使用全局名称空间引用

在某些情况下,它有助于重新排列标头,因此使用全局命名空间的标头位于前面-

如果在两个不同的名称空间下有两个相同名称和参数化的函数,则不能:

using namespace x;
using namespace y;

因为编译时会出现歧义错误。

选项是在函数前面加上x::或y::,或者限定名称空间的范围:

int test( void )
{
   using namespace x;
}

int test1( void )
{
   using namespace y;
}

当然,只有在一个函数中不同时使用两个名称空间的情况下,这才有效。

更新:指定"global"命名空间的唯一方法是在函数调用前加上: