我有各种预处理器变量,它们在不同的库中具有相同的名称。
为了避免冲突,我正在做的是(在示例中,为简单起见,仅包含 1 个冲突变量和 1 个标头):
#ifdef VAR
#define TEMPVAR VAR
#undef VAR
#endif
#include "conflictingheader.hh"
#ifdef VAR
#undef VAR
#endif
#ifdef TEMPVAR
#define VAR TEMPVAR
#undef TEMPVAR
#endif
是否有一种自动方法来存储所有冲突的变量,取消定义它们并在以后恢复它们?
或者是否可以定义一个宏来执行这些操作集?