簡體   English   中英

無法理解移動語義

[英]Can't understand move semantics

在一個簡單的示例中,如下所示:

struct MyClass {
    MyClass() {}
    MyClass(const MyClass&) {}
};

int main(){
    std::vector<MyClass> objects;
    MyClass obj1;
    objects.push_back(obj1);
    for (auto&& obj: object) {
    }
    return 0;
}

auto &&如何工作? 該類沒有任何移動支持,此代碼應該做什么? 我不明白

從引用序列的迭代器類型獲得的類型中推導出類型; 這是左值引用MyClass& 通過“引用折疊”規則,嘗試推斷類型“ 右值引用到左值引用”給出左值引用類型。

因此,將auto&&推導為MyClass&

如果序列具有給出右值引用的迭代器類型,則將其推導為MyClass&& ,如果該類支持它們,則啟用移動語義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM