我有一个像这样的宏:

#define MYDEFINE classX

可能是
#define MYDEFINE classY

在其他地方

其中classX和classY是某种类型名称。

检查MYDEFINEclassX还是classY的最佳方法是什么? (这里可能有两种以上的类型,所以我正在寻找一些灵活的解决方案)

编辑:关于用例,我有一个config.h文件供用户定义要使用的类型。我有一些编译时间决定要取决于此配置值,但是不希望更改config.h的工作方式。

我愿意接受C++ / C++ 11中提供的解决方案

最佳答案

常规方法是使用单独的宏在定义之间进行选择

#ifdef USE_X
#define MYDEFINE classX
#else
#define MYDEFINE classY
#endif

并在需要了解时使用
#ifdef USE_X
// ...
#endif

09-10 04:56