我只需要运行ship build,我需要在发布版本中断言某些条件以查看问题是否已修复.我该怎么做?
取消定义NDEBUG宏 - 您可以围绕要保留在构建中的断言在本地执行此操作:
#undef NDEBUG #include// reinclude the header to update the definition of assert()
或者做任何你需要做的事情,这样你的构建过程就不会首先定义NDEBUG宏.
为什么不定义自己的断言:
#define assert(x) MessageBox(...);
只需直接调用assert
在发布模式下处于活动状态的宏定义部分即可.
在Miro Samek(PDF)这篇伟大的文章中,您可以找到非常有用的C++断言定义.然后你可以稍微调整它们以满足你的需求.例如,您可以创建另一个宏,release_assert
它与assert相同,但无论它是处于释放模式还是调试模式.