[英]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.