2010-04-07 9 views
16

Wikipedia dice que los puntos de secuencia están en desuso en C++ 11. Qué significa eso? ¿Eso significa que los comportamientos indefinidos debido a los puntos de secuencia no tienen ningún efecto?C++ 11 sin punto de secuencia?

+0

¿Podría proporcionar un enlace al artículo citado de Wikipedia? –

+0

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

+0

@KennyTM Gracias :-) –

Respuesta

9

El término "punto de secuencia" está en desuso con el fin de proporcionar una explicación más clara. El lenguaje C++ no debería cambiar.

Puede encontrar más información here

7

La frase "punto de secuencia" se ha desaprobado en favor de redacción más explícita como "secuenciaron antes". Los puntos de secuencia ya eran difíciles de entender. Agregar el multihilo les hace casi imposible de tratar, por lo que fueron (al menos en su mayoría) eliminados a favor de otras palabras.

8

Un problema importante con el término "punto de secuencia" es que sugiere un tipo de secuencia absoluta que nunca existió. Considere la expresión a = (b(),c()) + d(); Hay un punto de secuencia entre b() y c(), pero eso no significa que todo lo demás se pueda describir como claramente anterior a c() o claramente después de b(). Sería posible para b(), c(), y d(), para ser evaluado en el orden bcd, bdc, o dbc. La terminología del punto de "secuencia" realmente no dejaba eso en claro, pero sí la terminología más nueva.