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