仅在发布版本中删除功能

Yuk*_*uki 2 c++

是否有任何方法可以从Release版本中删除一行代码,但是将它保留在Debug构建中而没有丑陋的#if语句?

例如,有没有办法在不使用所有这些if语句的情况下实现下面代码的等价物?

#if DEBUG
    Log.Log("I am in debug mode");
#endif
Run Code Online (Sandbox Code Playgroud)

如果我在Log.Log函数中有条件的运行时检查,那么字符串"我在调试模式"将保留在我编译的可执行文件中,这正是我想要的.

Dan*_*ite 7

在公共共享标头中定义另一个宏.

#ifdef DEBUG
#define LOG(m) Log.Log(m);
#else
#define LOG(m) do {} while(false);
#endif
Run Code Online (Sandbox Code Playgroud)

然后更换您的通话来Log.LogLOG.