2010-04-07 4 views
16

Wikipedia dice che i punti di sequenza sono deprecati in C++ 11. Cosa significa? Ciò significa che i comportamenti non definiti dovuti ai punti di sequenza non hanno effetti?C++ 11 senza punto di sequenza?

+0

Potrebbe fornire un collegamento all'articolo di Wikipedia citato? –

+0

@ Péter: http://en.wikipedia.org/wiki/C%2B%2B0x – kennytm

+0

@KennyTM Grazie :-) –

risposta

9

Il termine "punto di sequenza" è deprecato per fornire una spiegazione più chiara. La lingua C++ non dovrebbe cambiare.

È possibile trovare maggiori informazioni here

7

La frase "punto di sequenza" è stato deprecato in favore del fraseggio più esplicito come "sequenziato prima". I punti di sequenza erano già difficili da capire. L'aggiunta del multithreading li rende quasi impossibili da affrontare per chiunque, quindi sono stati (almeno per lo più) eliminati a favore di altre parole.

8

Uno dei problemi principali con il termine "punto di sequenza" è che suggerisce un tipo di sequenziamento assoluto che non è mai esistito. Considerare l'espressione a = (b(),c()) + d(); C'è un punto di sequenza compreso tra b() e c(), ma ciò non significa che tutto il resto può essere descritto chiaramente prima dello c() o chiaramente dopo lo b(). Sarebbe possibile per b(), c() e d(), per essere evaludato nell'ordine bcd, bdc o dbc. La terminologia del punto "sequenza" in realtà non lo chiariva, ma la terminologia più recente lo fa.