C++-Sequenzpunkte
Ein Ausdruck kann den Wert eines Objekts zwischen aufeinander folgenden „Sequenzpunkte nur einmal ändern“.
Microsoft-spezifisch
In C++ gibt nicht nur die Definition von Sequenzpunkten an.Microsoft C++ verwendet dieselben Sequenzpunkte z. B. ANSI C für jeden Ausdruck, der C-Operatoren enthält und nicht überladene Operatoren enthält.Wenn Operatoren überladen werden, die Semantik Änderung vom Operator, der im Funktionsaufruf sequenziell ordnen nacheinander angeordnet werden.Microsoft C++ verwendet die folgenden Sequenzpunkte:
Linker Operand des logischen Operators AND (&&).Der linke Operand des logischen Operators AND wird vollständig ausgewertet und alle Nebeneffekte geschlossen ab, bevor fortgesetzt wird.Es gibt keine Garantie dafür, dass der rechte Operand des logischen Operators AND ausgewertet wird.
Linker Operand des logischen (Oder-Operators||).Der linke Operand des logischen Oder-Operators wird vollständig ausgewertet und alle Nebeneffekte geschlossen ab, bevor fortgesetzt wird.Es gibt keine Garantie dafür, dass der rechte Operand des logischen Oder-Operators ausgewertet wird.
Linker Operand des Operators Komma.Der linke Operand des Operators Komma wird vollständig ausgewertet und alle Nebeneffekte geschlossen ab, bevor fortgesetzt wird.Beide Operanden des Operators Komma werden immer ausgewertet.
Aufrufoperator.Der Funktionsaufruf Ausdruck und alle Argumente an eine Funktion, einschließlich Standardargumente ausgewertet werden, und alle Nebeneffekte geschlossen vor Eintrag für die Funktion ab.Es gibt keine bestimmte Reihenfolge der Auswertung unter den Argumenten oder dem Funktionsaufruf Ausdruck.
Der erste Operand des bedingten Operators.Der erste Operand des bedingten Operators ausgewertet wird vollständig geschlossen und alle Nebeneffekte ab, bevor fortgesetzt wird.
Das Ende eines vollständigen Initialisierungsausdrucks das Ende einer Initialisierung in einer Deklarationsanweisung.
Der Ausdruck in eine Ausdrucksanweisung.Ausdrucks Anweisungen bestehen aus einem optionalen Ausdruck, der ein Semikolon (;) gefolgt.Der Ausdruck wird vollständig für die Nebeneffekte ausgewertet.
Der steuernde Ausdruck in einer Anweisung (bei der Auswahl oder Schalter).Der Ausdruck wird ausgewertet und alle Nebeneffekte vollständig geschlossen ab, bevor das codeabhängige für die Auswahl ausgeführt wird.
Der steuernde Ausdruck oder wenn der Anweisung ausführen.Der Ausdruck wird ausgewertet und alle Nebeneffekte vollständig geschlossen vor allen Anweisungen in der nächsten Iteration ab wann der wird oder ausgeführt werden.
Jede der drei Ausdrücken einer For Anweisung.Jeder Ausdruck ausgewertet wird vollständig geschlossen und alle Nebeneffekte ab, bevor dem folgenden Ausdruck wird.
Der Ausdruck in eine Return Statement.Der Ausdruck wird ausgewertet und alle Nebeneffekte vollständig geschlossen ab, bevor die Steuerung an die aufrufende Funktion zurückgegeben wird.