2011-07-26 78 views

回答

30

http://www.justsoftwaresolutions.co.uk/cplusplus/rvalue_references_and_perfect_forwarding.html

這是爲什麼有用嗎?那麼,這意味着函數模板可以通過使用std :: forward將參數傳遞給另一個函數,同時保留函數參數的左值/右值性質。這稱爲「完美轉發」,避免過度複製,避免模板作者爲左值和右值引用寫入多個重載。

+5

你打我吧:) –

+3

支付記住一個人的書籤文章。 ;) –

+1

這是一篇很棒的文章,謝謝。 – 2014-12-14 19:45:26

6

報價Session Announcement: Adventures in Perfect Forwarding

完善轉發之上構建 右值引用一個重要的C++ 0x的技術。它允許應用移動語義爲 ,即使移動的源和目標是由中間函數調用分隔的 。常見示例包括 構造函數和設置函數,它們將它們接收到的參數 轉發給它們正在初始化或設置的類的數據成員,如 以及標準庫函數(如make_shared),其中 將其參數「完美」轉發給類構造函數任何 對象將被創建的shared_ptr指向。

+1

您在此答案中提供的鏈接不再存在... – TheCrafter

+0

剛剛來到這裏。也許這節省了一些時間。 https://cppandbeyond.wordpress.com/2011/04/25/session-announcement-adventures-in-perfect-forwarding/ – rfx