Zerosquare (./33772) :
(Par ailleurs, je pressens que Ximoon aura deux mots à te dire à propos de l'utilisation de continue
)
Bingo

Sur l'appel d'une fonction dans un test conditionnel, également. Bref je ne suis pas fan du tout

Et pour savoir si c'est réellement optimisé il faudrait savoir le type de données qui sont traitées, car si tu gagnes du temps lorsque les premières données de tes buffers sont égales, tu perds du temps sinon. Quel est le cas le plus fréquent? (encore que maintenant avec l'exécution parallèle de branches de décisions, ça peut revenir au même, mais salue spectre et meltdown pour moi, par contre si tu n'as pas de prédiction de branche sur ton architecture, ça peut être le contraire: tu risques de pourrir ton cache et ton pipeline).
Ensuite pour un lookup, ça dépend encore du type de données et de comment elles sont rangées dans le buffer. Mais ça, c'est à toi de voir.
Globalement je

Zerosquare, sans surprise.