template<typename ... _Args>
是一种用于定义可变参数模板(variadic template)的语法。这种模板允许你在编译时处理数量可变的参数列表。这种特性非常有用,尤其是在需要处理不确定数量的参数时。
#include <iostream>
// 可变参数模板函数
template<typename... Args>
void print(Args... args) {
(std::cout << ... << args) << std::endl;
}
int main() {
// 调用可变参数模板函数
print("Hello, ", "World!"); // 输出: Hello, World!
print(1, 2, 3); // 输出: 123
print(); // 输出: (空行)
return 0;
}
template<typename... Args>
表示这是一个可变参数模板。Args...
表示可以接受任意类型的多个参数。args
是传入的实际参数列表。
#include <iostream>
// 可变参数模板类
template<typename... Args>
class MyClass {
public:
MyClass(Args... args) {
process(args...);
}
private:
void process(Args... args) {
(std::cout << ... << args) << std::endl;
}
};
int main() {
MyClass<int, double, std::string> obj(1, 2.5, "Hello");
// 输出: 12.5Hello
return 0;
}