[問題] 右值引用的背後原理或如何達到的

看板C_and_CPP作者 (Clang++)時間9年前 (2016/07/25 14:16), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/2 (看更多)
小弟我想請問一下,右值引用是一個可以加快程式效能的一種好方法 個人知道怎麼使用 ex C++98 template<class T> void swap(T& a, T& b) { T tmp(a); a = b; b = tmp; } ex C++11的swap template<class T> void swap(T& a, T& b) { T tmp(std::move(a)); a = std::move(b); b = std::move(tmp); } 利用move來減少複製一份的成本 但是我想問背後的到底是怎麼達到的?? 要去研究編譯器的行為 問題2 為什麼我目前看到好像沒有其他語言做這件事情?? 像這相關的東西要如何了解?? 謝謝 -- C++是雙截棍,揮舞起來很強悍。 很吸引人,但需要你多年的磨練來掌握。 很多人希望改用別的武器。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.216.121 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1469456171.A.23F.html

07/25 22:35, , 1F
印象中 agda 好像也有 rvalue-reference 只是目的不是改
07/25 22:35, 1F

07/25 22:35, , 2F
善程式效能
07/25 22:35, 2F

07/25 22:35, , 3F
好像是增強程式安全性的樣子 忘記是不是 agda 了啦……
07/25 22:35, 3F

07/25 22:35, , 4F
總之 reference 不只 C++ 有
07/25 22:35, 4F
文章代碼(AID): #1NbXyh8_ (C_and_CPP)
文章代碼(AID): #1NbXyh8_ (C_and_CPP)