InQuesto riferimento temporaneo sopravvive abbastanza a lungo?
template <typename T>
T const & foo(T const & dflt)
{ return /* ... */ ? /* ... */ : dflt; }
int x = foo(5);
Condivide la riferimento alla temporanea "sopravvivere" fino a quando è assegnato a x?
(lo so che sopravvive alla durata della chiamata foo(), ma l'assegnazione mi fa esitare)
Il codice in questione ha alcuni usi legittimi per fare affidamento su riferimenti const qui, vale a dire che avrei avuto bisogno di due separati funzioni
T const & foo_cr(T const & dflt);
T const & foo_v(T dflt);
che voglio evitare (solo basandosi su diverse firme wiht lo stesso nome sembra un po 'rischioso per me.)
Cosa significa '...? ...: dflt; 'questo dovrebbe significare? 0_o –
'...' in questo contesto è "il codice che è irrilevante alla domanda.Io l'ho modificato in commenti, forse è più chiaro. – peterchen