Dés lors, je sais qu'il y a encore des boites qui préconise la règle de codage connue sous le nom de SESE (
Single Entry, Single Exit), et l'on pourrait facilement relancer un débat au sujet de cette règle, mais, toutes choses étant égales, je préfèrerais l'un de ces deux codes (quitte à voir s'il y a bel et bien une différence au niveau de l'assembleur généré) à l'utilisation de l'opérateur ternaire, et ce, d'autant plus si, pour pouvoir utiliser l'opérateur ternaire, il faut passer par un static_cast.
La raison est à mon sens toute simple:
Je trouve, personnellement, que même lorsque l'on a l'habitude de l'utiliser, l'opérateur ternaire nécessite un effort de compréhension bien supérieur à celui que peut nécessiter la compréhension d'un simple if (... else) et que si l'on n'a pas le bénéfice d'une optimisation possible (comme c'est le cas dans cette situation), il est sans doute préférable de choisir la forme qui apportera la meilleure visibilité

Partager