taking address of temporary错误
前些天将一个项目从VS2013移植到Qt上,遇到了这样一个问题:
Dispatch->XCDispatchMessage(&linev());
//error:taking address of temporary
这段代码从VS2013通过了编译,但是到Qt上却出现了错误,于是上网百度,有一个人在编译OpenCV时也遇到了一样的问题:
cv::Mat centers;
int attempts = 1;
int flags = cv::KMEANS_PP_CENTERS;
cv::kmeans(sample_feature, k, tmp, cv::TermCriteria(), attempts, flags, ¢ers);
MyFunction myobject;
myobject.set(&CvMat(centers));//error:taking address of temporary [-fpermissive]
很明显,这都是因为引用返回的临时变量地址而引起的编译性错误。联想到之前的讨论,我将代码做了修改:
lin *plin=&linev();
Dispatch->XCDispatchMessage(plin);
结果还是一样的错误,思考了很久,我想到了这么办:
lin lin=linev();
lin *plin=&lin;
Dispatch->XCDispatchMessage(plin);
最后成功通过了编译,无警告。
从这个问题中我们可以看出使用非const引用引用返回的临时变量地址是确实不被允许的(如果使用const引用,可以延长变量生命周期到与引用同长),起码也会抛出一个警告
那这段代码为啥能在VS上通过编译呢?百度得知,这是VS2013的非标准扩展(默认打开,可关闭),自动在多种情况下扩展了被引用对象的生命周期
taking address of temporary错误相关推荐
- C++对象构建与使用,error: taking address of temporary [-fpermissive]
error: taking address of temporary [-fpermissive] 获取临时对象的地址,编译器是不允许的. 这里要理解什么是临时对象, 临时对象就是无名对象,在语句行上 ...
- git commit 命令出现“fatal: unable to auto-detect email address (got '******@.(none)')错误
初学者使用git来控制代码版本时,使用git commit 命令是出现fatal: unable to auto-detect email address (got '-@-(none)') 错误,这 ...
- 路由器IP-4-DUPADDR: Duplicate address和CDP-4-DUPLEX_MISMATCH错误的解决方案
1. IP-4-DUPADDR: Duplicate address 现象:配置了路由器之后,console上不停地报IP-4-DUPADDR: Duplicate address错误 故障分析: 1 ...
- WSDL文档中address location生成错误问题解决
最近在生成环境遇到一个问题,一个渠道调用我们的webservice服务报错了,错误原因是他们远程方式访问我们的webservice服务,每次需要去读wsdl文档取到访问地址,但是出问题时,他们取到的端 ...
- weblogic部署web项目出现错误
1.错误描述 <2015-3-15 下午02时13分01秒 CST> <Info> <Security> <BEA-090905> <Disabl ...
- mysql报错代码10051_socket error 10061/11004/10053/10051等错误总结
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单 ...
- ElasticSearch 6.4.3 启动报错: [Cannot assign requested address: bind]
今天在本地搭建一个测试用的最新版ElasticSearch6.4.3 的环境时,遇到一个报: [Cannot assign requested address: bind]的错误. 错误日志内容如下: ...
- 当应用出现 access violation at address in module时
Delphi2010和XE10,midas是不同的版本,之前开发的两个系统,基于不同的Delphi版本,经常出现access violation at address in module错误.特别是当 ...
- 微信企业号开发:微信考勤百度地图定位,错误修正二
在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...
最新文章
- (转)C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
- 更新网盘(云存储)功能需求,免费网盘需求,手机数据备份
- boost : has_to_string的用法测试程序
- windows系统中创建线程常用哪几个函数,有什么区别?
- E. Sign on Fence(整体二分 + 线段树维护区间最大连续 1 的个数)
- 微型计算机的alu部件是包含在,微型计算机的ALU部件是什么?
- 信息学奥赛一本通(2051:【例3.1】偶数)
- Android Audio代码分析2 - 函数getMinBufferSize
- 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT
- oracle 如何查看一个表属于哪一个数据文件,如何查看某一表空间的数据文件都分布了哪些数据对象...
- ubuntu16.04卸载火狐,Amazon
- 原生JS实现图片幻灯片效果
- 对java老师的评价及建议_对老师的评价及建议
- 创建菜单与游戏界面(下)
- python 路径格式化_「原创」「python自学笔记」python编码规范
- idea 报@Override is not allowed when implementing interface method的问题解决
- XCOM V2.6串口助手
- WSL2 Ubuntu中apt update命令报错,无法解析域名解决方法
- 怎么mac ftp服务器文件夹,mac 访问 ftp服务器文件夹权限
- 依存句法分析与语义依存分析的区别
热门文章
- GitLab-CI持续集成(CI)的介绍与运行机制
- javascript实现数字补全不足补零
- 佳能相机快门测试软件不收费,【有图】佳能单反查快门的免费软件 EOSMSG4.0 新测好用-蜂鸟网...
- LandSat8遥感影像辐射定标与大气校正
- MGN(多粒度网络)模型训练的详细步骤
- 【数值优化之凸集与凸函数】
- android界面美化教程,android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现...
- 为什么要在油气行业中应用 IoT?这 8 个应用场景告诉你 IoT 在油气行业中可以做什么...
- 都2021年了,你还不知道混沌工程( Chaos Engineering)?
- 16_ZYNQ7020开发板gpio输入实验