2010-05-25 7 views
9

n3035 dice:¿Por qué se modificó la definición de una variable durante el desarrollo de C++ 11?

Una variable se introduce por la declaración de un objeto. El nombre de la variable denota el objeto.

n3090 dice:

Una variable se introduce por la declaración de una referencia que no sea un miembro de datos no estática o de un objeto. El nombre de la variable denota el objeto de referencia o.

Me pregunto qué motivó este cambio. ¿Tiene que ver con referencias rvalue?

Respuesta

10

El cambio fue en respuesta a CWG defect 633. La lista de cambios relacionados con esto se puede encontrar en n2993:

El objetivo de estos cambios es ampliar el significado de "variable" para abarcar tanto los objetos con nombre y referencias, y para aplicar el término constante siempre que sea posible.

+0

En mi opinión, ese fue uno de los defectos más desagradables en C++ 03 :) Tristemente el otro repugnante [no se solucionará] (http://www.open-std.org/jtc1/ sc22/wg21/docs/cwg_active.html # 554) por C++ 0x :( –

+2

Entonces, 25 años después de la introducción de las referencias en C++, finalmente podemos decir que 'Foo & x' es una variable de referencia sin contradecir el estándar. El diseño del lenguaje es un proceso lento y minucioso ":) – fredoverflow

Cuestiones relacionadas