Non-type template parameters trong C++ cho phép bạn truyền các giá trị không phải kiểu (như số nguyên, con trỏ, hoặc tham chiếu) vào template. Chúng hữu ích khi bạn cần tạo các đối tượng hoặc hàm mà phụ thuộc vào các giá trị cụ thể.
Khi nào và tại sao sử dụng:
Tối ưu hóa: Giúp biên dịch tạo ra mã tối ưu hơn bằng cách biết trước các giá trị.
Tạo cấu trúc dữ liệu: Ví dụ, bạn có thể tạo mảng có kích thước cố định tại biên dịch.
Tăng tính linh hoạt: Cho phép tạo ra các lớp hoặc hàm với các hành vi khác nhau dựa trên các giá trị cụ thể.
Ví dụ:
template N>
class Array {
int data[N];
};
Sử dụng non-type template parameters giúp mã của bạn trở nên mạnh mẽ và linh hoạt hơn.