新聞中心
這里有您想知道的互聯網營銷解決方案
關于C++11右值引用-創(chuàng)新互聯
C++11引入右值引用后查看了很多資料,但都過于啰嗦,不能一針見血,這里用最簡單的方式闡述一下

右值引用類型為 T&& 。如
T&& right_ref = ?
右邊的 ?如果是右值就可以了。如果想用左值,就需要std::move(左值)
那么右值引用有什么用呢?答案是移動構造的參數用的是右值引用,比如
class A
{
public:
A(A&& other)
{}
}
上面這個構造函數就是移動構造函數。也就是當我們構造一個函數的時候。如果參數是右值引用。那么就會觸發(fā)移動構造。移動構造就會掏空other(一般是指針之類的直接奪過來)。這樣就會比拷貝構造高效了很多。也就是說std::move(左值)不會對左值有任何影響,只是為了讓其作為參數來觸發(fā)移動構造,在移動構造里才會對左值產生掏空的作用。
那么std::forward(?)是做什么的呢?
因為如果? 為 T&&時,是不會觸發(fā)移動構造的,所以要經過std::forward(T&&)“完美轉發(fā)”會才能觸發(fā)移動構造
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
新聞名稱:關于C++11右值引用-創(chuàng)新互聯
新聞來源:http://www.dlmjj.cn/article/cdchhd.html


咨詢
建站咨詢
