透過常數引用擴展右值生命週期
在C 中,常量引用不僅充當不可變別名,還可以延長臨時變量的生命週期。為什麼 C 委員會決定要實現此行為?
此功能的一個基本原理是隱藏類別和函數的實作細節。考慮一個可以傳回行向量或列向量的矩陣類別。為了最佳化效能,類別可以選擇根據其行優先或列優先組織傳回內部值的參考。透過要求客戶端接受返回值作為 const 引用,該類別可以在引用和值之間無縫切換,從而使客戶免受實現細節的影響。
從歷史上看,延長右值生命週期的決定源自於解決方法中不一致的問題。參考文獻在 1993 年處理了臨時資料。當時,RVO(返回值優化)還不存在。禁止臨時變數與引用的綁定會嚴重影響效能。因此,委員會選擇了一種解決方案,允許綁定,同時延長臨時變數的使用壽命,以確保它們在參考使用期間的可用性。
此基本原理記錄在1993 年提交給C 標準委員會的提案N0345.pdf 中通過延長右值的生命週期,const 引用有助於更好的抽象、保持代碼靈活性並優化從函數傳回物件時的效能。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3