Forcer les opérandes à s'exécuter
Bonjour à tous,
J'ai deux traitements et au cas où d'un est effectif, je dois en faire un troisième.
Cela donne :
Code:
1 2 3
|
if(op1() || op2())
op3(); |
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.
Le problème c'est que l'exécution de op2() est nécessaire pour la routine.
J'ai essayé :
Code:
1 2 3 4
| bool b1 = op1();
bool b2 = op2();
if(b1 || b2)
op3(); |
Pareil avec des int * ^2, rien à faire
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 ?