template新特性:可变参数模板,(传入参数个数未知)

来源:互联网 发布:超图软件股票怎么样 编辑:程序博客网 时间:2024/06/05 04:37

template <typaname T, typaname ...Args >

Args表示0个或多个模板类型参数

#include <iostream>//负责打印最后一个实参template <typename T>void print(const T& arg){    std::cout<<"print1"<<std::endl;    std::cout<<arg<<std::endl;}//template <typename ...Types>//void print(const Types&... args){//    std::cout<<"print3"<<std::endl;//    std::cout<<sizeof...(Types)<<std::endl;//得出传入参数包的大小////    print(args...);//这样的话会一直调用自己,出现死循环//}template <typename T,typename...Types>void print(const T& arg,const Types&...args){    std::cout<<"print2"<<std::endl;    std::cout<<arg<<std::endl;    print(args...);}using namespace std;int main(){    print(5.6,"hello",33,22);    return 0;}


可以看到模板调用的次序,print1保证了最后一个元素被打印。