Это продолжение моего предыдущего вопроса Каков порядок уничтожения аргументов функции? потому что я случайно перепутал аргументы с параметрами. Спасибо Коломбо и Т.С. за то, что избавил меня от терминологической путаницы в комментариях к этому вопросу.
Если тело некоторой функции f
с параметрами p_1
,..., p_n
типов T_1
,..., T_n
соответственно выдает исключение, завершается или возвращает, то в каком порядке уничтожаются параметры и почему? Если возможно, дайте ссылку на стандарт.
Примеры:
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?