iT邦幫忙

0

c++函式結束後的拷貝指定運算子,解構器順序

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20230826/20162504KLG4BJO4Gt.jpghttps://ithelp.ithome.com.tw/upload/images/20230826/20162504EK8C2qKl9F.jpg!https://ithelp.ithome.com.tw/upload/images/20230826/20162504xZtL2wdUa6.jpg
疑問:
HasPtr h5 = f(h);//2,1,4,3,為什麼不是2,1,4,3,2,3?
HasPtr f(HasPtr hp);此函式的hp與ret不應該都被解構嗎?應該會有兩個3,傳入h5應該是拷貝建構嗎?應該還需要一個2

還是發生了其他細節?
有大神能幫忙嗎?ty

DanSnow iT邦好手 1 級 ‧ 2023-08-28 00:37:33 檢舉
有可能被編譯器最佳化掉了,不過這也只是猜測而已,由於你用圖片導致我沒辦法複製,你可以自己試看看這個工具 https://godbolt.org ,觀察產出來的 asm 會是如何的
王大槌 iT邦新手 5 級 ‧ 2023-09-07 08:48:54 檢舉
謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答