Informations préliminaires : selon le récent Rapport de voyage du comité C++ de l'ISO El [[ likely ]]
y [[ unlikely ]]
Les attributs pour le branchement conditionnel seront ajoutés dans la section C++20
et est disponible dans la dernière version de GNU GCC (vous pouvez jouer avec sur le compilateur en ligne wandbox.org ).
Question : Est-ce que la construction suivante
if (cond) [[ likely ]] { ... }
équivalent à celui qui suit ?
if (__builtin_expect(bool(cond), 1)) { ... }
Existe-t-il des différences de performances ou des nuances de mise en œuvre entre les différents compilateurs dont il faut être conscient pour les utiliser efficacement ?