我想要一个 unique_ptr 的向量作为我正在制作的类的成员。
class Foo {
[...]
private:
vector<unique_ptr<Bar>> barList;
}
但随后我开始从VS2010编译器收到神秘的错误消息:
error C2248: 'std::unique_ptr<_Ty>::operator =' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
连同下面的一些错误行,这些错误行深入到 Microsoft 的实现std::_Copy_impl<>
...
我将成员声明更改为
vector<unique_ptr<Bar>>* barList;
它编译。但是我不禁想知道为什么我不能按照我最初想要的方式去做呢?对于笑容,我尝试了这个,它工作正常:
vector<Bar> barList;
但是现在我失去了unique_ptr
. 我想要我的蛋糕,我也想吃!