我试图在某些C++代码中使用第三方SDK.虽然SDK和标题在技术上与C++兼容,但它实际上只是一堆讨厌的C.
特别是主头文件有数百个#defines,其中这些最差.
#define C 0 //Celsius
#define F 1 //Fahrenheit
#define R 2 // Rankine
#define K 3 // Kelvin
Run Code Online (Sandbox Code Playgroud)
现在,您可以想象在尝试使用包含类似内容的boost库时,我得到的错误消息:
template< typename F > struct template_arity;
Run Code Online (Sandbox Code Playgroud)
一些战术#undefs可以解决问题,但它仍然像一颗定时炸弹.我也可以重写第三方标题的大部分内容,或者只是尝试隔离我真正需要的部分.
有没有更好的解决方案来解决这个问题?
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |