与第三方头文件相关的C++Builder歧义错误
C++ Builder Ambiguity Error Relating to 3rd Party Header Files
我正在处理一个大型项目,该项目使用了许多第三方库。由于这个事实,我遇到了一些歧义错误。一些函数在全局名称空间中定义,也在不同的名称空间中。
我知道你可以指定"using"来表示要使用哪个命名空间,但我不知道如何为文件指定它,而不在每个错误前加上":"。
如果有人知道一种方法,或者有更好的方法,我会洗耳恭听。
背景:
如果我需要非全局名称空间,这不会是一个问题,因为我可以在该名称空间中使用"using"。。。好奇是否有一种方法可以使用全局名称空间引用
在某些情况下,它有助于重新排列标头,因此使用全局命名空间的标头位于前面-
如果在两个不同的名称空间下有两个相同名称和参数化的函数,则不能:
using namespace x;
using namespace y;
因为编译时会出现歧义错误。
选项是在函数前面加上x::或y::,或者限定名称空间的范围:
int test( void )
{
using namespace x;
}
int test1( void )
{
using namespace y;
}
当然,只有在一个函数中不同时使用两个名称空间的情况下,这才有效。
更新:指定"global"命名空间的唯一方法是在函数调用前加上:
相关文章:
- 构造对象的歧义
- TDateTime格式在C++Builder中不会更改
- C++Builder中的OnClick事件签名存在问题
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 数组初始值设定项的构造函数歧义
- 消除好友和成员二进制运算符的歧义
- 用' . '代替' :: '会在C++中造成歧义吗?
- 为什么下面带有非常量转换函数的代码没有歧义?
- std::bind 是否实现了 std::ref 和 std::cref 来消除函数调用的歧义?
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用 bool 和 const char 重载的 C++ 函数会在没有警告的情况下产生歧义 (MSVC2012)
- C++SFINAE enable_if_t成员函数,如何消除歧义?
- 是否允许调用方对我的 Builder 类使用任何指针类型(包括智能指针)?
- 在 C++ Builder 中使用 NULL 构造 DynamicArray
- 多重继承相同的方法名,没有歧义
- 如何在模板化转换运算符中消除此构造的歧义?
- 当存在覆盖歧义函数时,代码如何运行?
- 如何区分宏函数和函数函数而没有任何歧义?
- 使用c++ Builder 10 Seattle有很多歧义错误
- 与第三方头文件相关的C++Builder歧义错误