C++模板显示指定类型时使用引用遇到的问题
1.问题
这里我想让模板函数接收int和char类型的参数,并进行相加,显示指定参数类型为int。
第一个调用理论上会自动将char类型强转成int类型,后进行相加;
第二个调用理论上会自动将int类型强转成char类型,后进行相加;
但是报错No matching function for call to 'add_ab'
template<typename T>
T add_ab(T &a, T &b) {
return a + b;
}
int a1 = 1;
char b1 = 'b';
cout << add_ab<int>(a1, b1) << endl;
cout << add_ab<char>(a1, b1) << endl;
2.解决
T &A,T &B 错误的原因是因为传入的是地址(隐式指针),该指针对应的b的内存区域还是char类型 ;
你告诉编译器用int 类型 但是实际上 return a + b;中的 b 会自动转为*b(引用),这里的*b还是char 所以错误
这里使用T add_ab(T a, T b);值传递即可。
template<typename T>
T add_ab(T a, T b) {
return a + b;
}
C++模板显示指定类型时使用引用遇到的问题的更多相关文章
- Java显示指定类型的文件
文件作为存储数据的单元,会根据数据类型产生很多分类,也就是所谓的文件类型.在对数据文件进行操作时,常常需要根据不同的文件类型来作不同的处理.本实例实现的是读取文件夹指定类型的文件并显示到表格控件中.这 ...
- 引用模板中的类型时,切记要加上typename声明!!
如题,发现实际操作中太容易忘记了,导致一些莫名其妙的编译错误,故在此记录!
- HTML input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
html input="file" 浏览时只显示指定文件类型 xls.xlsx.csv <input id="fileSelect" type=" ...
- <input type="file" />浏览时只显示指定文件类型
<input type="file" />浏览时只显示指定文件类型 <input type="file" accept="appli ...
- Visio 2007中进行数据库建模时如何显示字段类型以及概念名称
关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型: 在visio菜单上--->点击数据库--->选项--->文档 打开后选择表这项,在上 ...
- odoo在底部显示指定字段合计和汇总时显示合计
1.odoo的tree视图底部显示合计 tree 视图,底部显示指定字段合计数 ,视图中字段定义上在sum,取自sale.view_order_tree 销售订单 tree 视图 <field ...
- css控制打印时只显示指定区域
CreateTime--2017年9月26日08:16:04 Author:Marydon css控制打印时只显示指定区域 思路: 1.使用打印命令@media print: 2.控制执行打印命令 ...
- 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)
1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下: <action name="*"> ...
- Effective Modern C++翻译(6)-条款5:auto比显示的类型声明要更好
在概念上说,auto关键字和它看起来一样简单,但是事实上,它要更微妙一些的.使用auto会让你在声明变量时省略掉类型,同时也会防止了手动类型声明带来的正确性和性能上的困扰:虽然按照语言预先定义 ...
- item 6: 当auto推导出一个不想要的类型时,使用显式类型初始化的语法
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 Item 5解释了比起显式指定类型,使用auto来 ...
随机推荐
- Scrapy-redis组件,实现分布式爬虫
安装包 pip install -U scrapy-redis settings.py ##### Scrapy-Redis ##### ### Scrapy指定Redis 配置 ### # 其他默认 ...
- 华企盾DSC防泄密系统:半透明问题调试方法
1.先添加下图中的注册表 2.用debugview工具监控操作过程,然后找到后面是DSE_SANDBOX,把它前面的值一个一个加到控制台的半透明沙盒对象里面调,直到找到可以正常的为止 3.用supe ...
- 【难受】SpirngCloud-Alibaba-nacos跨服务器访问接口的问题
原想法:我首先准备了 一个网关 2个服务 分别将两个服务部署到不同的远程服务器当中 实现跨服务器访问接口 网关为本地调用--这里就不一一介绍了 问题 利用gateway做路由时出现服务不可用的情况,看 ...
- docker的基本命令使用
docker image/images docker image与images 的区别在于docker images可以直接使用,docker image不可以直接使用,看例子 [root@docke ...
- java集合迭代器(Iterator)
1:什么是迭代器(Iterator): 在java中有很多存储数据的容器比如:(ArrayLIst,HashSet.....)每个容器都有自己的特点 因为内部结构不一样所以为了能对容器内元素的操作更简 ...
- proxy代理实现接口调用处理
proxy代理实现接口调用处理 我们知道,要调用接口必须要实例化才能调用. 那么我们能不能不实例化调用呢?像mybatis.hibernate那样定义一个接口就能注入调用.其实他们的底层实现就是用代理 ...
- websocket实现实时直播
websocket实现实时直播 这篇文章我首发于简书,拿到这里发表不过分吧?点个赞再走呗! 作为一名web开发者,我使用websocket实现实时直播(滑鸡版). 为什么是滑鸡版呢?因为他上不了生产, ...
- Shiro 的基本使用
简介 Apache Shiro 是一个强大的.灵活的开源安全框架,可以干净地处理验证.授权.企业会话管理和加密等功能 相关特性 Apache Shiro 具有的主要特性如下图所示: 主要关注的地方在于 ...
- 1、reids 基础
SortedSet类型 特性 1.可排序 2.元素不重复性 3.查询速度快 与普通的集合类型相比,SortedSet 主要有以下两个特点: 有序性:根据分数对元素进行排序,便于范围查找等操作. 不重复 ...
- Ocelot(.NET API Gateway)
一.介绍 Ocelot 是一个.NET API 网关 面向使用.NET运行微服务/面向服务的体系结构的人员,这些体系结构需要统一的系统入口点. Ocelot将HttpRequest对象操作到由其配置指 ...