前些天将一个项目从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错误相关推荐

  1. C++对象构建与使用,error: taking address of temporary [-fpermissive]

    error: taking address of temporary [-fpermissive] 获取临时对象的地址,编译器是不允许的. 这里要理解什么是临时对象, 临时对象就是无名对象,在语句行上 ...

  2. git commit 命令出现“fatal: unable to auto-detect email address (got '******@.(none)')错误

    初学者使用git来控制代码版本时,使用git commit 命令是出现fatal: unable to auto-detect email address (got '-@-(none)') 错误,这 ...

  3. 路由器IP-4-DUPADDR: Duplicate address和CDP-4-DUPLEX_MISMATCH错误的解决方案

    1. IP-4-DUPADDR: Duplicate address 现象:配置了路由器之后,console上不停地报IP-4-DUPADDR: Duplicate address错误 故障分析: 1 ...

  4. WSDL文档中address location生成错误问题解决

    最近在生成环境遇到一个问题,一个渠道调用我们的webservice服务报错了,错误原因是他们远程方式访问我们的webservice服务,每次需要去读wsdl文档取到访问地址,但是出问题时,他们取到的端 ...

  5. weblogic部署web项目出现错误

    1.错误描述 <2015-3-15 下午02时13分01秒 CST> <Info> <Security> <BEA-090905> <Disabl ...

  6. mysql报错代码10051_socket error 10061/11004/10053/10051等错误总结

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单 ...

  7. ElasticSearch 6.4.3 启动报错: [Cannot assign requested address: bind]

    今天在本地搭建一个测试用的最新版ElasticSearch6.4.3 的环境时,遇到一个报: [Cannot assign requested address: bind]的错误. 错误日志内容如下: ...

  8. 当应用出现 access violation at address in module时

    Delphi2010和XE10,midas是不同的版本,之前开发的两个系统,基于不同的Delphi版本,经常出现access violation at address in module错误.特别是当 ...

  9. 微信企业号开发:微信考勤百度地图定位,错误修正二

    在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...

最新文章

  1. (转)C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
  2. 更新网盘(云存储)功能需求,免费网盘需求,手机数据备份
  3. boost : has_to_string的用法测试程序
  4. windows系统中创建线程常用哪几个函数,有什么区别?
  5. E. Sign on Fence(整体二分 + 线段树维护区间最大连续 1 的个数)
  6. 微型计算机的alu部件是包含在,微型计算机的ALU部件是什么?
  7. 信息学奥赛一本通(2051:【例3.1】偶数)
  8. Android Audio代码分析2 - 函数getMinBufferSize
  9. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT
  10. oracle 如何查看一个表属于哪一个数据文件,如何查看某一表空间的数据文件都分布了哪些数据对象...
  11. ubuntu16.04卸载火狐,Amazon
  12. 原生JS实现图片幻灯片效果
  13. 对java老师的评价及建议_对老师的评价及建议
  14. 创建菜单与游戏界面(下)
  15. python 路径格式化_「原创」「python自学笔记」python编码规范
  16. idea 报@Override is not allowed when implementing interface method的问题解决
  17. XCOM V2.6串口助手
  18. WSL2 Ubuntu中apt update命令报错,无法解析域名解决方法
  19. 怎么mac ftp服务器文件夹,mac 访问 ftp服务器文件夹权限
  20. 依存句法分析与语义依存分析的区别

热门文章

  1. GitLab-CI持续集成(CI)的介绍与运行机制
  2. javascript实现数字补全不足补零
  3. 佳能相机快门测试软件不收费,【有图】佳能单反查快门的免费软件 EOSMSG4.0 新测好用-蜂鸟网...
  4. LandSat8遥感影像辐射定标与大气校正
  5. MGN(多粒度网络)模型训练的详细步骤
  6. 【数值优化之凸集与凸函数】
  7. android界面美化教程,android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现...
  8. 为什么要在油气行业中应用 IoT?这 8 个应用场景告诉你 IoT 在油气行业中可以做什么...
  9. 都2021年了,你还不知道混沌工程( Chaos Engineering)?
  10. 16_ZYNQ7020开发板gpio输入实验