所以我在这里有一点立场,我不确定如何继续进行,或者它是否可以修复......
我们使用其他团队提供的第三方SDK,此SDK必须用于我们的应用才能正常运行.
在这个SDK中,有这样的行
#define uint16_t UINT16
#define uint8_t UINT8
Run Code Online (Sandbox Code Playgroud)
问题出在Boost中,更具体地说,ASIO/Details/cstdint.hpp文件中有行
using std::uint16_t
using std::uint8_t
Run Code Online (Sandbox Code Playgroud)
我的应用程序现在不会编译,因为它真的在做
using std::UINT16
using std::UINT8
Run Code Online (Sandbox Code Playgroud)
并且它抱怨这些类型显然不存在于std命名空间中.
这些UINT16和UINT8定义在应用程序中的任何地方都非常大,因此替换它们并不是很可行,我甚至不确定如果我这样做,SDK是否会起作用.
在包含boost头文件之前,我可以尝试#undef所有这些定义吗?然后重新定义它们?看起来很傻,我怀疑它甚至会起作用.
有什么建议?