我希望能夠做這樣的事情使用Visual C++編譯器(VC12):有一個Visual C++預定義的預處理器宏,讓你知道當編譯器優化
// 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的__optimize__
在CL的等效?
即使它確實存在,預處理器也不能告訴你編譯器*會*優化一個翻譯單元(假設沒有優化可以完成),只是它*可能* – StoryTeller
你正在做這個錯誤辦法。您需要提高調試技能(例如,使用跟蹤點而不是斷點等)。 – IInspectable
使用編譯器開關檢查調試模式。幾乎每個IDE都有可能使用不同的編譯器選項來設置調試和發佈模式。 – Lundin