Bonjour à tous,
J'ai deux traitements et au cas où d'un est effectif, je dois en faire un troisième.
Cela donne :
Sauf que si le compilateur évalue op1() à false, il ne cherche pas à exécuter op2() car il connait déjà le résultat de la condition, en tout cas c'est ce que le débogage m'inspire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(op1() || op2()) op3();
Le problème c'est que l'exécution de op2() est nécessaire pour la routine.
J'ai essayé :
Pareil avec des int * ^2, rien à faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool b1 = op1(); bool b2 = op2(); if(b1 || b2) op3();
Y a-t-il n moyen de forcer l'exécution des opérandes même si ce n'est pas nécessaire pour connaitre le résultat final ?
Partager