我希望能够使用 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() 的两次调用之间的差异。
编辑:
为了回应几条解释为什么我不想做我想做的事情的评论,我或许应该把这个问题简单地改写成:__optimize__
cl 中是否有 gcc 的等价物?