如何在 运行 时间内优雅地排除一个代码块

How to elegently exclude a code block in run time

我为了在编译期间从模型中排除一段代码,我使用预处理器作为:

#ifdef setting1
do something
#endif //setting1

有时我打算在编译期间保留一段代码,但在 运行 期间将其排除。为此,有没有比 if 语句更好的方法?

要保留它 "raw",您只需将 #ifdef 替换为


bool const theflag = false;

if constexpr (theflag) {
    dosomething
}

这样 dosomething 仍然会进行语法检查。