我希望能够使用visual c ++编译器(vc12)执行类似的操作:
// If we have compiled with O2
#ifdef _O2_FLAG_
bool debug_mode = false;
// If we are in dirty slow non optimized land
#else
bool debug_mode = true;
#endif
但我无法为此找到预定义的宏。
上下文
debug_mode标志的用法如下:
if (!debug_mode && search_timer->seconds_elapsed() > 20) {
return best_result_so_far;
}
问题在于我在一个调试实例中经常出现这种情况会失败并将我炸掉,因为奇怪的是,我需要花费更长的时间才能完成代码而不是CPU通常会经历它: - )
如果有一些基础时钟在调试时暂停,那也可以解决我的问题。目前我正在使用两次调用std :: chrono :: high_res_clock :: now()之间的区别。
编辑:
在回答几条评论,解释为什么我不想做我想做的事情时,我或许应该简单地重新提出这个问题:是否有相同的gcc' s __optimize__
in CL?
答案 0 :(得分:4)
您可以使用_DEBUG
或NDEBUG
来检测调试配置。这在技术上并不意味着与优化标志相同,但99%的时间都应该足够了。
另一个选择是自己为项目添加预处理器定义。