Questo è un seguito alla mia domanda precedente What is the order of destruction of function arguments? perché ho confuso accidentalmente argomenti con parametri. Grazie a Columbo e T.C. per liberarmi dalla confusione terminologica nei commenti di quella domanda.Qual è l'ordine di distruzione dei parametri di funzione?
Se il corpo di qualche funzione f
con i parametri p_1
, ..., p_n
di tipi T_1
, ..., T_n
tiri rispettivamente un'eccezione, finiture o ritorni, in che ordine sono i parametri distrutti e perché? Si prega di fornire un riferimento allo standard, se possibile.
Esempi:
template <typename ... Args>
void f(Args ... params) {} // in what order are params destroyed?
void f(T1 p1, T2 p2, T3 p3) {} // in what order are p1, p2 and p3 destroyed?
Non credo che il lancio di un'eccezione faccia una grande differenza in merito all'ordine di valutazione. –