亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于編譯器NRV優化的問題

關于編譯器NRV優化的問題

江戶川亂折騰 2019-04-16 16:58:29
話說如果一個class沒有提供copyconstructor,就不會實施NRV優化,這是為什么,因為編譯器需要的話,可以合成一個copyconstructor啊求大神解答,謝謝。
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

題目的這句話應該是從深度探索C++對象模型中看來的吧,其實NRV優化和有沒有copyconstructor并沒有直接的聯系。
“早期的cfront需要一個開關來決定是否應該對代碼實行NRV優化,這就是是否有客戶(程序員)顯式提供的拷貝構造函數:如果客戶沒有顯示提供拷貝構造函數,那么cfront認為客戶對默認的逐位拷貝語義很滿意,由于逐位拷貝本身就是很高效的,沒必要再對其實施NRV優化;但如果客戶顯式提供了拷貝構造函數,這說明客戶由于某些原因(例如需要深拷貝等)擺脫了高效的逐位拷貝語義,其拷貝動作開銷將增大,所以將應對其實施NRV優化,其結果就是去掉并不必要的拷貝函數調用?!?pre>參看上面的那段話,當然我也是從其他地方摘過來的,由于Lippman寫這本書的時候比較早,并且他是cfront的早起作者之一,所以就想當然的把這句話當做準則寫進書里面了。
                            
查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 362 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號