栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

c++可变参模板容易遗忘造成的错误

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++可变参模板容易遗忘造成的错误

问题描述

提示:这里描述项目中遇到的问题:

想要尝试使用可变参模板,但是报错

template
void print(T firstArg, Types... args)
{
	std::cout << firstArg << 'n'; //print first argument
	print(args ...);// call print() for remaining arguments
}

原因分析:

提示:这里填写问题的分析:

忽略了对于0参数的考虑

解决方案:

提示:这里填写该问题的具体解决方案:

在模板前面添加

void print() {}

或者使用第2种重载方式

template
void print (T arg)
{
std::cout << arg << ’n’; //print passed argument
}

template
void print (T firstArg, Types… args)
{
print(firstArg); // call print() for the first argument
print(args…); // call print() for remainingarguments
}

两种方式区别的是 对模板选择的不同

总结:

注意细节,模板的一些错误都不是直观的,要时刻注意!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号