Tous les arguments sont évalués. L'ordre n'est pas défini (conformément à la norme). Mais toutes les implémentations de C/C++ (que je connais) évaluer les arguments d'une fonction à partir de la droite vers la gauche.
Je crois que le droit-à-gauche de l'évaluation de l'ordre a été très très vieux (depuis les premiers compilateurs C). Certainement la voie avant le C++ a été inventé, et la plupart des implémentations de C++ serait de garder le même ordre d'évaluation, car au début C++ implémentations simplement traduit en C.
Il y a une raison technique pour l'évaluation des arguments de fonction de droite à gauche. Dans la pile des architectures, des arguments sont généralement poussé sur la pile. En C/C++, vous pouvez appeler une fonction avec des arguments plus que spécifié -- les arguments supplémentaires sont simiply ignoré. Si des arguments sont évalués de gauche à droite, et poussé de gauche à droite, puis la pile fente à droite sous le pointeur de pile tiendra le dernier argument, et il n'existe aucun moyen de la fonction pour obtenir le décalage de tout argument particulier (parce que le nombre réel d'arguments poussé dépend de l'appelant).
Dans une de droite à gauche, poussez la commande, la pile fente à droite sous le pointeur de pile aura toujours le premier argument, et le prochain emplacement détient le deuxième argument etc. Argument décalages sera toujours déterministe de la fonction (qui peut être écrit et compilé ailleurs dans une bibliothèque, séparément, d'où il est appelé).
Maintenant, de droite à gauche, poussez la commande n'a pas de mandat de droite à gauche de l'évaluation de l'ordre, mais au début de compilateurs, de la mémoire est rare. En droit-à-gauche de l'évaluation de l'ordre, de la même pile peut être utilisée sur place (essentiellement, après une évaluation de l'argument -- ce qui peut être une expression ou d'une fonction d'appel! -- la valeur de retour est déjà à la bonne position sur la pile). De gauche à droite de l'évaluation, les valeurs de l'argument doit être stocké séparément et de les pousser en arrière de la pile dans l'ordre inverse.