lang:cpp:attribut
Les attributs ci-dessous sont standards et supportés par l'ensemble des compilateurs.
[[unlikely]] et [[likely]]
Il est possible d'indiquer au compilateur si une condition est généralement vraie ou fausse. Cela fonctionne sur if
et case
.
- cpp/attribute/un-likely1.cpp
int s(int i); int iff(int i); int s(int i) { switch (i) { case 1: return 1; [[likely]] case 2 : return 2; [[unlikely]] default : return 3; } } int iff(int i) { int retval; if (i == 1) { retval = 1; } else if (i == 2) [[likely]] { retval = 2; } else [[unlikely]] { retval = 3; } return retval; } int main(int argc, char* /* argv */[]) { return s(argc) + iff(argc); }
Avec attributs | Sans attribut |
---|---|
|
|
On voit que le code est différent pour le switch
/case
mais pas pour le if
/then
/else
.
lang/cpp/attribut.txt · Dernière modification : 2020/07/18 23:54 de root