Я работаю над своим небольшим проектом об указателях, я столкнулся с проблемой, когда пытался передать sh unique_ptr в производный класс, в вектор unique_ptr в базовый класс. Он продолжает говорить, что я «пытаюсь сослаться на удаленную функцию». Я пытался использовать push_back с и без std :: move, но ничего не получалось ...
#include<iostream>
#include<memory>
#include<vector>
using namespace std;
class Base {};
class Derived : public Base {};
void add(vector<unique_ptr<Base>> list, const unique_ptr<Base>& ptr);
int main()
{
vector<unique_ptr<Base>> list;
unique_ptr<Base> derived(new Derived);
add(list, derived);
}
void add(vector<unique_ptr<Base>> list, const unique_ptr<Base>& ptr)
{
list.push_back(move(ptr));
}