簡體   English   中英

無法push_back移動(NonCopyableWithConstField)到矢量

[英]Can't push_back move(NonCopyableWithConstField) to vector

我有一個NonCopyable類(由於其unique_ptr字段)。 我想創建一個NonCopyable元素的向量,但是以下代碼無法編譯

    NonCopyable nc;
    vector<NonCopyable> vec;
    vec.push_back(move(nc));

這是NonCopyable的定義:

class NonCopyable final {
public:
    const std::unique_ptr<string> data;
};

錯誤消息是Call to implicitly-deleted copy constructor of NonCopyable

如何在我的向量中添加NonCopyable元素,同時能夠發出信號,表明嵌入的數據字段是不可變的?


更新 :我當前的解決方案是:(i)使data非常量; (ii)設為私人; (iii)添加const函數以公開data

您的NonCopyable類沒有移動構造函數。 定義一個。

顯示的代碼應能正常運行。

暫無
暫無

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

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