C_and_CPP 板


LINE

最近读的书上有个范例程式码 https://onlinegdb.com/f93sPV8B2 书上有给Turbo C++ 和Symantec C++ 的run (那本书蛮老了) 总之turbo是在104行呼叫reserve函数的时候有呼叫copy constructor 而symantec没有(查了一下才知道rvo,应该没错(?)) 没有rvo的版本因为函数return後tmp就被解构了所以c3的str没办法正确印出 书上有提供的解法是我在class里定义(目前是用标注)的=运算子多载 问题点1. 没有rvo(turbo)的版本,应该是要用 Charstr operator=(Charstr inobj) ?(即不用reference) 因为reverse 的传回值不是左值(? 因为我用的编译器是有rvo的所以也不知道这样对不对... 问题点2. 我目前用的是环境dev c++,拿这个程式去编译会是有rvo 试着把注明里的部分加上去看看 结果过不了... 用 Charstr operator=(Charstr inobj) 也过不了 请问这是为什麽呢? 新手无知...不好意思,谢谢 ---- Sent from BePTT on my OPPO CPH1943 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.243.113 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1705843485.A.C6E.html
1F:推 wulouise: gcc支援copy elision很久了,dev c++不要用 godbolt方便01/21 23:12
2F:→ wulouise: godbolt assembly都直接展开给你看,不用自己写dtor测试01/21 23:13
3F:推 Dracarys: 跟copy elision没有关系,而是c3 = c2.reverse();呼叫01/22 22:02
4F:→ Dracarys: 到了implicit copy assignment operator,只会做member01/22 22:02
5F:→ Dracarys: -wise copy,所以c3的_str和等号右边的一样,指到的arr01/22 22:02
6F:→ Dracarys: ay都会被等号右边的prvalue的destructor干掉。如果遵守01/22 22:02
7F:→ Dracarys: rule of 0/3/5就不会被这deprecate很久的功能雷到:01/22 22:02
8F:→ Dracarys: https://eel.is/c++draft/depr.impldec01/22 22:02
9F:→ Dracarys: 没客制化copy-assignment 的sanitizer output:01/22 22:02
10F:→ Dracarys: https://godbolt.org/z/1KKrb6bMo01/22 22:02
11F:→ Dracarys: uncomment掉就好了01/22 22:02
谢谢楼上两位大大 对我之前搞错了...不管哪个版本c2.reverse()都在赋值给c3之後被解构 了(但是dev c++可以output 出正常的array(咦?)) 还有运算子的部分还是很迷惑 我试了一下如果把copy constuctor删掉,用非参照的方式多 载=就过的了了(当然还是印不出array) 到底发生了什麽事... ※ 编辑: amamoimi (1.200.243.113 台湾), 01/23/2024 07:48:17
12F:推 wulouise: sorry我没看code qq 01/24 11:23







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP