模板可变参数列表
c++
#include <iostream>
#include <string>
#include <typeinfo>
#include <vector>
class A{
public:
A(){};
};
// 递归终止条件:当参数包为空时,停止递归调用
template<typename T>
void concat(T arg) {
// 打印当前参数的类型信息
std::cout << typeid(arg).name() << std::endl;
}
// 可变参数的递归调用
template<typename T, typename... Args>
void concat(T arg, Args... args) {
// 打印当前参数的类型信息
std::cout << typeid(arg).name() << std::endl;
// 递归调用,将剩余的参数传递给下一次调用
concat(args...);
}
int main() {
concat(1, 2.0f, 3.00, "Hello", A(),std::vector<A>{A(),A()});
return 0;
}