可变参数模版, 使得函数可以接收任意类型, 任意数量的参数
- 一定需要一个无参函数结束递归, 并且要放在前面, 编译器是从前往后依次找寻第一个可以调用的函数.
- 每次传递的参数被分为一个和一包, 一包继续递归传递下去
- 使用sizeof…(args) 获得一包里参数的个数
void print() {}
template<typename T, typename... Types>
void print(const T& arg, const Types&... args) {
cout<<arg<<endl;
print(args...);
}
print(1.4, "asdf", 2, true);