2013-03-03 49 views

回答

7

術語universal reference是由斯科特·梅耶斯編造的術語,用於區分正常的右值引用,即int&&和模板代碼中的右值引用,即T&&。這很重要,因爲模板代碼中引用了參考摺疊規則,所以這個術語用於幫助教學。它被稱爲unversal reference的原因是因爲它可以綁定到任何東西。

請記住,有沒有這樣的東西在C++語言universal referenceFunction&&右值引用至於語言而言。但是,是的,在Scott Meyer的術語中,Function&&在您的示例中爲universal reference

+0

+1這幾乎就像我們在同一個腳本中同時打字一樣。做得好。 – 2013-03-03 02:42:37

+0

謝謝,也給你+1,因爲我可能從閱讀SO上的答案中學到了大部分內容。 – 2013-03-03 02:44:25

+1

gah,太晚了...浪費了我的時間進行代碼測試:D – 2013-03-03 02:47:41

3

是& &一個普遍的參考?

的排序。像復活節兔子和聖誕老人​​一樣,實際上沒有像通用參考(對不起,如果我爲你寵壞了)。標準中沒有顯示通用參考標準。這是由斯科特·梅耶斯(Scott Meyers)提出的術語,用來描述「特殊演繹規則」激活時的模板右值參考。

顯示的內容有效的代碼。特殊的扣除規則適用於這種情況。也就是說,當您傳遞一個左值參數Af時,Function將推斷爲A&。所以按斯科特的定義,是的,Function是一個「通用參考」。

1

Looks like it,std::forward<Function>在您的函數中調用時正確地轉發參數類型。

相關問題