这是我之前的一个问题函数参数的销毁顺序是什么?的后续,因为我不小心混淆了参数和函数。感谢Columbo和T.C.在那个问题的评论中帮我澄清了术语混淆。
如果某个带有类型分别为T_1
, ..., T_n
的参数p_1
, ..., p_n
的函数f
的主体抛出异常、完成或返回,那么参数的销毁顺序是什么,为什么?如果可能,请提供对标准的引用。
例子:
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?