Sur des classes avec surcharge d'opérateur, gcc n'optimisera pas ce type de code, sauf si tu déclares ta méthode en ligne, auquel cas le code à compiler contiendra directement les instructions (et pourra donc être optimisé).
Sinon il y a une grosse différence entre i++ et ++i (il n'y a pas deux opérateurs pour rien), et c'est intéressant de se poser la question dès que l'on a un lien avec une autre variable ou une comparaison.
Par exemple :
while (padding++ < 0) {
*outstr++ = pad;
}
Dans ce cas, j'utiliserai l'incrémentation postfixe car j'ai une dépendance sur un test (et le 'padding' resert après dans un autre test). Sinon, sauf contre-indication, j'utilise l'infixe, car cela ne change rien à mon code, et je n'ai pas à me soucier de savoir si cela va être optimisé ou non.
[^] # Re: Cela rassure
Posté par riri le breton (site web personnel) . En réponse à la dépêche Rendre GNOME rapide. Évalué à 1.
Sinon il y a une grosse différence entre i++ et ++i (il n'y a pas deux opérateurs pour rien), et c'est intéressant de se poser la question dès que l'on a un lien avec une autre variable ou une comparaison.
Par exemple :
while (padding++ < 0) {
*outstr++ = pad;
}
Dans ce cas, j'utiliserai l'incrémentation postfixe car j'ai une dépendance sur un test (et le 'padding' resert après dans un autre test). Sinon, sauf contre-indication, j'utilise l'infixe, car cela ne change rien à mon code, et je n'ai pas à me soucier de savoir si cela va être optimisé ou non.