prolongando la vida de los temporales
¿Cuál es la razón de diseño detrás de permitir esto
const Foo& a = function_returning_Foo_by_value();
pero no esto
Foo& a = function_returning_Foo_by_value();
?
¿Qué podría salir mal en la segunda línea (que ya no saldría mal en la primera línea)?