110 votes

Ordre d'évaluation dans les paramètres de la fonction C++

Si nous avons trois fonctions (foo, bar et baz) qui sont composées comme ça...

foo(bar(), baz())

La norme C++ garantit-elle que la barre sera évaluée avant Baz ?

15voto

S.M. Points 7691

C++17 spécifie un ordre d'évaluation pour les opérateurs qui n'était pas spécifié jusqu'à C++17. Voir la question Quelles sont les garanties d'ordre d'évaluation introduites par C++17 ? Mais notez votre expression

foo(bar(), baz())

a encore un ordre d'évaluation non spécifié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X