2010-05-25 11 views
9

n3035 dice:Perché la definizione di una variabile è cambiata durante lo sviluppo di C++ 11?

Una variabile viene introdotta dalla dichiarazione di un oggetto. Il nome della variabile denota l'oggetto.

n3090 dice:

Una variabile viene introdotto dalla dichiarazione di un riferimento diverso da un membro di dati non statica o di un oggetto. Il nome della variabile indica il riferimento o l'oggetto.

Mi chiedo cosa abbia motivato questo cambiamento. Ha a che fare con i riferimenti di valore?

risposta

10

La modifica era in risposta a CWG defect 633. La lista dei cambiamenti relativi a questo può essere trovato in n2993:

L'obiettivo di questi cambiamenti è quello di ampliare il significato di "variabile" per racchiudere entrambi gli oggetti con nome e riferimenti, e di applicare il termine costantemente ogniqualvolta ciò sia possibile.

+0

A mio parere quello era uno dei difetti più disgustosi in C++ 03 :) Purtroppo l'altro schifoso [non verrà corretto] (http://www.open-std.org/jtc1/ sc22/wg21/docs/cwg_active.html # 554) di C++ 0x :( –

+2

Quindi, 25 anni dopo l'introduzione dei riferimenti in C++, possiamo finalmente dire che "Foo & x" è una variabile di riferimento senza contraddire lo standard. " Il design della lingua è un processo lento e faticoso ":) – fredoverflow

Problemi correlati