Partager via


Points de séquence C++

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

Spécifique à Microsoft

La définition de langage C++ ne spécifie pas actuellement des points de séquence.Microsoft C++ utilise les mêmes points de séquence qu'C ANSI pour toute expression utilisant des opérateurs C et n'utilisant pas les opérateurs surchargés.Lorsque des opérateurs sont surchargés, la modification de sémantique de l'opérateur séquencement à l'ordonnancement de fonction-appel.Microsoft C++ utilise les points de séquence suivants :

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

  • Opérande gauche de l'opérateur logique OR (||).L'opérande gauche de l'opérateur OR logique est complètement évaluée et tous les effets secondaires est effectués avant de continuer.Il n'y a 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ée et tous les effets secondaires est effectué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 de fonction-appel et tous les arguments d'une fonction, y compris les arguments par défaut, sont évalués et les effets secondaires soient effectués avant les entrées de la fonction.Il n'y avait pas de commande spécifiée d'évaluation entre les arguments ou l'expression de fonction-appel.

  • premier opérande de l'opérateur conditionnel.Le premier opérande de l'opérateur conditionnel est complètement évaluée et tous les effets secondaires est effectué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 d'expression se composent d'une expression facultative suivie par un point-virgule (;).l'expression est complètement évaluée pour ses effets secondaires.

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

  • L'expression de contrôle d'une heure ou certaines l'instruction.L'expression est complètement évaluée et tous les effets secondaires est effectués avant toutes les instructions dans l'itération suivante du runtime ou boucle sont exécutés.

  • Les trois expressions d'un pour l'instruction.Chaque expression est complètement évaluée et tous les effets secondaires est remplis avant de passer à l'expression suivante.

  • l'expression dans une instruction return.L'expression est complètement évaluée et tous les effets secondaires est remplis avant le contrôle retourne à l'appel de la fonction.

Voir aussi

Référence

Sémantique des expressions