En¿Esta referencia temporal sobrevive el tiempo suficiente?
template <typename T>
T const & foo(T const & dflt)
{ return /* ... */ ? /* ... */ : dflt; }
int x = foo(5);
¿La referencia a temporal "sobrevivir" hasta que se asigna a x?
(sé que sobrevive a la duración de la llamada foo(), pero la tarea que me hace dudar)
El código en cuestión tiene algunos usos legítimos para confiar en las referencias const aquí, es decir, que necesitaría dos por separado funciones
T const & foo_cr(T const & dflt);
T const & foo_v(T dflt);
la que quiero evitar (sólo confiar en diferentes firmas wiht el mismo nombre parece un poco arriesgado para mí.)
¿Qué significa '...? ...: dflt; 'que se supone que significa? 0_o –
'...' en este contexto es "código que es irrelevante para la pregunta. Lo he cambiado a comentarios, tal vez eso esté más claro. – peterchen