Partager via


Points de séquence C++

Une expression peut modifier la valeur d'un objet une seule fois entre des points de séquence consécutifs.

Section spécifique à Microsoft

La définition de langage C++ ne spécifie pas actuellement les points de séquence. Microsoft C++ utilise les mêmes points de séquence que C ANSI pour toute expression utilisant des opérateurs C et n'impliquent pas les opérateurs surchargés. Lorsque des opérateurs sont surchargés, la sémantique passe de la séquence par l'opérateur à la séquence par l'appel de fonction. Microsoft C++ utilise les points de séquence ci-dessous.

  • Opérande de gauche de l'opérateur AND logique (&&). L'opérande gauche de l'opérateur AND logique est complètement évalué et tous les effets secondaires sont terminés avant de continuer. Il n'existe aucune garantie que l'opérande droite de l'opérateur AND logique sera évalué.

  • Opérande de gauche de l'opérateur OR logique (||). L'opérande gauche de l'opérateur OR logique est complètement évalué et tous les effets secondaires sont terminés avant de continuer. Il n'existe aucune garantie que l'opérande droite de l'opérateur OR logique sera évalué.

  • Opérande gauche de l'opérateur virgule. L'opérande gauche de l'opérateur virgule est complètement évalué et tous les effets secondaires sont terminés avant de continuer. Les deux opérandes de l'opérateur virgule sont toujours évalués.

  • Opérateur d'appel de fonction. L'expression appel-fonction et tous les arguments d'une fonction, notamment les arguments par défaut, sont évalués et tous les effets secondaires sont terminés avant l'entrée dans la fonction. Il n'y a aucun ordre spécifié d'évaluation entre les arguments ou l'expression appel-fonction.

  • Premier opérande de l'opérateur conditionnel. Le premier opérande de l'opérateur conditionnel est complètement évalué et tous les effets secondaires sont terminés avant de continuer.

  • La fin d'une expression complète d'initialisation, comme la fin d'une initialisation dans une instruction de déclaration.

  • L'expression dans une instruction d'expression. Les instructions Expression sont composées d'une expression facultative suivie d'un point-virgule (;). L'expression est complètement évaluée pour ses effets secondaires.

  • L'expression de contrôle d'une instruction de sélection (if ou switch). L'expression est complètement évaluée et tous les effets secondaires sont terminés avant que le code dépendant de la sélection soit exécuté.

  • Expression de contrôle d'une instruction while ou do. L'expression est complètement évaluée et tous les effets secondaires sont terminés avant que toutes les instructions de l'itération suivante de la boucle while ne soient exécutées.

  • Chacune des trois expressions d'une instruction for. Chaque expression est complètement évaluée et tous les effets secondaires sont terminés avant de passer à l'expression suivante.

  • Expression dans une instruction return. L'expression est complètement évaluée et tous les effets secondaires sont terminés avant que le contrôle ne retourne à la fonction appelante.

Voir aussi

Référence

Sémantique des expressions