見下圖:
規律總結:
只要我們傳遞一個基本類型是A④的左值,那么,傳遞后,T的類型就是A&,形參在函數體中的類型就是A&。
只要我們傳遞一個基本類型是A的右值,那么,傳遞后,T的類型就是A,形參在函數體中的類型就是A&&。
另外,模板參數類型推導是保留cv限定符(cv-qualifier,const和volatile限定符的統稱)的,具體例子見《完美轉發和標准庫forward函數》。
①這里指形參在函數體中的實際類型
②函數返回的不具名左值引用依舊是左值,例如,上面代碼中,Get(3)=5;是可以的。
③具名的右值引用是左值,不具名的右值引用是右值。
④這里,“基本類型是A”意思是:A,A&,A&&及A類型的字面值的基本類型都是A。