Đây là câu hỏi tiếp theo cho câu hỏi trước của tôi What is the order of destruction of function arguments? vì tôi vô tình nhầm lẫn các đối số với các tham số. Nhờ Columbo và T.C. để giải thích cho tôi về sự nhầm lẫn về thuật ngữ trong các ý kiến của câu hỏi đó.Thứ tự hủy các tham số chức năng là gì?
Nếu cơ thể của một số chức năng f
với các thông số p_1
..., p_n
các loại T_1
..., T_n
lần lượt ném một ngoại lệ, kết thúc hoặc lợi nhuận, theo thứ tự nào được các thông số bị phá hủy và tại sao? Vui lòng cung cấp tham chiếu đến tiêu chuẩn, nếu có thể.
Ví dụ:
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?
Tôi không nghĩ rằng việc ném ngoại lệ sẽ tạo ra sự khác biệt lớn liên quan đến thứ tự đánh giá. –