Skip to content

模板可变参数列表 ​

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;
}

学 习 记 录