在我的项目中,程序可以做两件事中的一件事,但不能同时做两件事,所以我决定对一个类能做的最好的事情就是根据 #define 预处理器变量来定义它。接下来的代码可以向你展示我的想法,但你可以猜到它不起作用:
#ifdef CALC_MODE
typedef MyCalcClass ChosenClass;
#elifdef USER_MODE
typedef MyUserClass ChosenClass;
#else
static_assert(false, "Define CALC_MODE or USER_MODE");
#endif
所以我可以做
#define CALC_MODE
就在这之前。
如果需要,我可以放弃使用
static_assert
。我该怎么做?
这是一个建议,主要基于针对您的问题发布的评论:
#if defined(CALC_MODE)
typedef MyCalcClass ChosenClass;
#elif defined(USER_MODE)
typedef MyUserClass ChosenClass;
#else
#error "Define CALC_MODE or USER_MODE"
#endif