我正试图掌握智能指针。我有一个unique_ptr到double数组的向量,我可以创建,但无法访问它。
vector<unique_ptr<double[]>> arrDoubles;
//...
unique_ptr<double[]>dataArr(new double[size]);
arrDoubles.push_back(move(dataArr));
现在,
auto datAr = arrDoubles[0];
给出以下内容:
error: use of deleted function ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(const std::unique_ptr<_Tp [], _Dp>&) [with _Tp = double; _Dp = std::default_delete<double []>]’
答案 0 :(得分:6)
您正在尝试创建无法完成的unique_ptr
副本。使用参考。
auto& datAr = arrDoubles[0];