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?
risposta
Il termine "punto di sequenza" è deprecato per fornire una spiegazione più chiara. La lingua C++ non dovrebbe cambiare.
È possibile trovare maggiori informazioni here
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.
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.
Potrebbe fornire un collegamento all'articolo di Wikipedia citato? –
@ Péter: http://en.wikipedia.org/wiki/C%2B%2B0x – kennytm
@KennyTM Grazie :-) –