我想知道我的假設是否正確 - > Rvalue引用的工作方式與左值引用一樣,只是它們只能綁定到右值,因此可以用於檢測右值。左值引用是否像左值引用一樣工作?
所以當用作返回類型時,它就像左值引用一樣工作,就像它們返回它們綁定的實際對象一樣。
當用作參數類型時,它們傳遞值而不進行任何複製。我看到很多人問是什麼區別是通過右值引用和值(和左值引用)返回之間的區別是什麼,但不能通過說右值引用像左值引用一樣工作來回答,所以如果你知道在使用左值引用時會發生什麼,你可能知道使用右值引用時會發生什麼,也就是說,你會知道通過右值引用返回實際對象,而通過值返回時返回副本,就像通過左值引用返回和按價值(粗略)?
還是我錯了?
我認爲這是一個很好的摘要。 – Quentin
如果你意識到將一個引用(左值或右值)返回給本地(堆棧)變量將返回一個懸空引用,導致未定義的行爲,我不清楚。 –
返回一個r值參考可以防止RVO,因此是一個悲觀(以及潛在的危險) –