在我的项目中,程序可以执行两个操作中的一个,但永远不会同时执行两个。因此,我决定对一个类进行最佳定义,具体取决于#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)
和#elif defined(USER_MODE)
。 - Retired Ninja$elif defined(...)
?你可能还会发现#error
指令很有趣。 - StoryTeller - Unslander Monica