Giả sử rằng tôi đang làm việc với một mã khoa học trong C ++. Trong một cuộc thảo luận gần đây với một đồng nghiệp, người ta đã lập luận rằng các mẫu biểu thức có thể là một điều thực sự tồi tệ, có khả năng làm cho phần mềm chỉ có thể biên dịch được trên các phiên bản gcc nhất định. Giả sử, vấn đề này đã ảnh hưởng đến một vài mã khoa học, như được đề cập trong phụ đề của trò nhại lại này . (Đây là những ví dụ duy nhất tôi biết, do đó liên kết.)
Tuy nhiên, những người khác đã lập luận rằng các mẫu biểu thức là hữu ích vì chúng có thể mang lại hiệu suất tăng, như trong bài viết này trong Tạp chí tính toán khoa học SIAM , bằng cách tránh lưu trữ kết quả trung gian trong các biến tạm thời.
Tôi không biết nhiều về siêu lập trình mẫu trong C ++, nhưng tôi biết rằng đó là một cách tiếp cận được sử dụng trong phân biệt tự động và trong số học khoảng, đó là cách tôi tham gia thảo luận về các mẫu biểu thức. Với cả những lợi thế tiềm năng trong hiệu suất và những nhược điểm tiềm tàng trong bảo trì (nếu đó là từ đúng), khi nào tôi nên sử dụng các mẫu biểu thức C ++ trong khoa học tính toán và khi nào tôi nên tránh chúng?