prolongando a vida útil dos temporários
Qual é a lógica do design por trás dessa permissão
const Foo& a = function_returning_Foo_by_value();
mas não isso
Foo& a = function_returning_Foo_by_value();
?
O que poderia dar errado na segunda linha (que ainda não daria errado na primeira linha)?