Je voudrais pouvoir faire quelque chose comme ceci en utilisant visual C++ compilateur (VC12):Y at-il un visual C++ macro préprocesseur prédéfini qui vous permet de savoir quand le compilateur optimise
// 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
Mais je ne peux pas trouver une macro prédéfinie à cet effet.
Contexte:
Le drapeau de debug_mode est utilisé comme:
if (!debug_mode && search_timer->seconds_elapsed() > 20) {
return best_result_so_far;
}
Le problème étant que dans une instance de débogage que je fais un pas dans cette tentative échoue constamment et des bombes me parce que bizarrement il me faut Il est beaucoup plus long de parcourir le code que le CPU le traverse normalement :-)
S'il y a une horloge sous-jacente qui s'arrête pendant le débogage, cela résoudrait aussi mon problème. Actuellement, j'utilise la différence entre deux appels à std :: chrono :: high_res_clock :: now().
EDIT:
En réponse à plusieurs commentaires expliquant pourquoi je ne veux pas faire ce que je veux faire, je reformule peut-être la question simplement: Y at-il un équivalent de __optimize__
gcc en cl?
Même s'il existait, le préprocesseur ne peut pas vous dire que le compilateur * optimisera une unité de traduction (si aucune optimisation ne peut être faite), seulement qu'il * peut * – StoryTeller
Vous allez à propos de ce mauvais façon. Vous devez améliorer vos compétences de débogage (par exemple, utilisez des points de trace au lieu de points de rupture, etc.). – IInspectable
Utilisez un commutateur de compilation pour vérifier le mode de débogage. Presque tous les IDE ont la possibilité de définir le mode de débogage et de publication, avec différentes options de compilation. – Lundin