Punti di sequenza C++
Un'espressione può modificare solo una volta il valore di un oggetto tra “punti di sequenza consecutivi.„
Specifici di Microsoft
La definizione di linguaggio C++ attualmente non specifica i punti di sequenza.Microsoft C++ vengono utilizzati gli stessi punti di sequenza ANSI C per qualsiasi espressione che comporta l'uso degli operatori c# e non comporta l'uso degli operatori di overload.Quando gli operatori sono sottoposti a overload, la modifica di semantica dall'operatore che ordina per l'ordinamento delle chiamate di funzione.Microsoft C++ vengono utilizzati i seguenti punti di sequenza:
Operando sinistro dell'operatore AND logico (&&).L'operando sinistro dell'operatore AND logico completamente viene valutato e tutti gli effetti collaterali viene completata prima di continuare.Non è garantito che l'operando dell'operatore AND logico verrà valutato.
Operando sinistro dell'operatore OR logico (||).L'operando sinistro dell'operatore OR logico completamente viene valutato e tutti gli effetti collaterali viene completata prima di continuare.Non è garantito che l'operando dell'operatore OR logico verrà valutato.
Operando sinistro dell'operatore virgola.L'operando sinistro dell'operatore virgola completamente viene valutato e tutti gli effetti collaterali viene completata prima di continuare.Entrambi gli operandi dell'operatore virgola vengono sempre valutate.
operatore di chiamata di funzione.L'espressione di chiamata di funzione e tutti gli argomenti di una funzione, inclusi gli argomenti predefiniti, vengono valutati e tutti gli effetti collaterali vengono completati prima della voce alla funzione.Non esiste un determinato ordine di valutazione tra gli argomenti o l'espressione di chiamata di funzione.
Primo operando dell'operatore condizionale.Il primo operando dell'operatore condizionale completamente viene valutato e tutti gli effetti collaterali viene completata prima di continuare.
La fine di un'espressione di inizializzazione completata, ad esempio la fine di un'inizializzazione in un'istruzione di dichiarazione.
Espressione di espressione.Le istruzioni di espressione sono costituiti da un'espressione facoltativa seguita da un punto e virgola (;).L'espressione completamente viene valutata per i relativi effetti collaterali.
L'espressione di controllo in un'istruzione di selezione (se l'opzione o).L'espressione viene valutata completamente e tutti gli effetti collaterali viene completata prima che il dipendente di codice alla selezione venga eseguito.
L'espressione di controllo di un tempo o esegue l'istruzione.L'espressione viene valutata completamente e tutti gli effetti collaterali viene completata prima delle istruzioni nell'iterazione successiva dell'attimo o un ciclo viene eseguito.
Ciascuna delle espressioni di un oggetto per l'istruzione.Ogni espressione completamente viene valutata e tutti gli effetti collaterali viene completata prima di passare all'espressione seguente.
l'espressione in un'istruzione return.L'espressione viene valutata completamente e tutti gli effetti collaterali viene completata prima che venga restituito alla funzione chiamante.