我怎么能(暂时)取消打字呢?

时间:2014-09-16 11:44:54

标签: c++

我正在使用typedef byte charchar的第三方库。

(这是邪恶的,signed可能是unsignedtypedef,具体取决于编制者的选择。

不幸的是,uint8_t已经溢出到我维护的代码库中,我很想将其删除:直接使用typedef

有一种方法,一旦我到达我的代码(即#include <3rdpartylib>之后的方向),我可以以某种方式撤消这个byte吗?

我删除了所有{{1}}后,我将能够从代码库中删除“解决方案”。

2 个答案:

答案 0 :(得分:16)

最简单的方法是将第三方库的包含括起来:

#define byte somethingnotnamedbyte
#include <3rdpartylib>
#undef byte

这样就无需编辑<3rdpartylib>,也避免了使用宏或类型错误的代码来污染您的代码。

前提条件:预处理令牌byte仅用作<3rdpartylib>中的typedef-name,绝不会用于其他任何内容。

答案 1 :(得分:0)

不可能这样做。 Undef仅适用于宏。