本篇内容介绍了“C++11可变参数的模板怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在C++11之前,类模板和函数模板只能含有固定数量的模板参数。C++11增强了模板功能,允许模板定义中包含0到任意个模板参数,这就是可变参数模板。可变参数模板和普通模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typ免费云主机域名ename或class后面带上省略号“…”:T叫模板参数包,args叫函数参数包。省略号“…”的作用有两个:声明一个参数包,这个参数包中可以包含0到任意个模板参数在模板定义的右边,可以将参数包展开成一个一个独立的参数一个可变参数模板函数的定义如下:运行结果如下:
通过递归函数展开参数包,需要提供一个参数包展开的函数和一个递归终止函数。运行结果如下:
递归调用过程如下:通过可变参数模板实现打印函数:运行结果如下:
运行结果如下:
expand函数的逗号表达式:(print(args), 0), 也是按照这个执行顺序,先执行print(args),再得到逗号表达式的结果0。同时,通过初始化列表来初始化一个变长数组,{ (print(args), 0)… }将会展开成( (print(args1), 0), (print(args2), 0), (print(args3), 0), etc…), 最终会创建一个元素只都为0的数组int a[sizeof…(args)]。可变参数模板类的展开一般需要定义2 ~ 3个类,包含类声明和特化的模板类:运行结果如下:
运行结果如下:
“C++11可变参数的模板怎么写”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
这篇免费云主机域名文章主要介绍“Ref在React中怎么交叉使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ref在React中怎么交叉使用”文章能帮助大家解决问题。Ref 转发是一项将 ref 自动地通过组件传递到…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。