圖說函數模板右值引用參數(T&&)類型推導規則(C++11)


見下圖:

規律總結:

只要我們傳遞一個基本類型是A的左值,那么,傳遞后,T的類型就是A&,形參在函數體中的類型就是A&。

只要我們傳遞一個基本類型是A的右值,那么,傳遞后,T的類型就是A,形參在函數體中的類型就是A&&。

另外,模板參數類型推導是保留cv限定符(cv-qualifier,const和volatile限定符的統稱)的,具體例子見《完美轉發和標准庫forward函數》。

①這里指形參在函數體中的實際類型

②函數返回的不具名左值引用依舊是左值,例如,上面代碼中,Get(3)=5;是可以的。

③具名的右值引用是左值,不具名的右值引用是右值。

④這里,“基本類型是A”意思是:A,A&,A&&及A類型的字面值的基本類型都是A。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM