作者Clangpp (Clang++)
看板C_and_CPP
標題[問題] 右值引用的背後原理或如何達到的
時間Mon Jul 25 22:16:06 2016
小弟我想請問一下,右值引用是一個可以加快程式效能的一種好方法
個人知道怎麼使用
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
推 CoNsTaR: 印象中 agda 好像也有 rvalue-reference 只是目的不是改 07/25 22:35
→ CoNsTaR: 善程式效能 07/25 22:35
→ CoNsTaR: 好像是增強程式安全性的樣子 忘記是不是 agda 了啦…… 07/25 22:35
→ CoNsTaR: 總之 reference 不只 C++ 有 07/25 22:35