我想在我的类中有一个指向对象的指针向量。为了避免为它创建析构函数,我想使用std::unique_ptr
,因为对象是在我的类中创建/拥有/销毁的,但是我有一个我无法理解的编译器错误。下一个代码将作为我的问题的简短示例:
std::unique_ptr<int> createPtr(int value)
{
std::unique_ptr<int> ptr(new int(value));
return ptr;
};
int main()
{
std::vector<std::unique_ptr<int>> vec;
vec.push_back(createPtr(1));
std::unique_ptr<int> ptr = createPtr(2);
vec.push_back(ptr);//error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
}
您能否解释一下为什么会出现此错误以及正确的用法是std::unique_ptr
什么?