Variadic templates trong C++ cho phép bạn định nghĩa các hàm và lớp với số lượng tham số không xác định. Điều này rất hữu ích khi bạn muốn xử lý một số lượng tham số khác nhau mà không cần phải định nghĩa nhiều phiên bản của hàm hoặc lớp.
Cách sử dụng:
Hàm variadic template:
template... Args>
void print(Args... args) {
(std::cout << ... << args) << '\n'; // Sử dụng fold expression
}
Lớp variadic template:
template... Types>
class MyClass {
public:
MyClass(Types... args) {
// Xử lý các tham số
}
};
Ví dụ sử dụng:
print(1, 2.5, "Hello"); // In ra: 1 2.5 Hello
MyClass, double, std::string> obj(1, 2.5, "Hello");
Variadic templates giúp bạn viết mã linh hoạt và tái sử dụng cao hơn.