首頁  >  文章  >  後端開發  >  在 C 17 中傳回局部變數是否會傳回副本並破壞原始變數 (NRVO)?

在 C 17 中傳回局部變數是否會傳回副本並破壞原始變數 (NRVO)?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-22 06:50:15367瀏覽

Does Returning a Local Variable in C  17 Return a Copy and Destroy the Original (NRVO)?

傳回局部變數是否會傳回副本並銷毀原始變數(NRVO)?

在 C 17 中,當啟用最佳化時(特別是(稱為傳回值最佳化或NRVO),傳回局部變數不涉及複製原始物件。傳回值位置,並且不會呼叫析構函數。標誌),則遵循預設行為:

局部變數正常構造。動性)到回傳值位置。 NRVO 後,只有一個構造函數觀察到析構函數調用,說明原來的i 物件被移動到了返回值位置,沒有進行複製。構造函數和析構函數調用,表明原始i 物件被複製,然後被析構。之後,返回局部變數不會傳回副本,也不會破壞原始變數。

以上是在 C 17 中傳回局部變數是否會傳回副本並破壞原始變數 (NRVO)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn