Имеется класс MyClass, разумеется с конструктором, нужно создать вектор умных указателей на объекты этого класса. Сам указатель создается, но при попытке добавления в вектор вылезает ошибка . Что я упустил?
#include <memory>
#include <vector>
using namespace std;
Int main()
{
vector<unique_ptr<MyClass>> vectorPtr;
unique_ptr<MyClass> p1(new MyClass);
// до этого момента всё в порядке
vectorPtr.push_back(p1);
return 0;
}
std::unique_ptr
не имеет конструктора копирования, поэтому, чтобы поместить его в вектор, его нужно переместить туда:
vectorPtr.push_back(std::move(p1));
Или так:
vectorPtr.push_back(std::make_unique<MyClass>())
Либо же создавать прямо в векторе:
vectorPtr.emplace_back(new MyClass);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, мне не хватает стандартной функции required для input сейчас мне надо сделать следующее
Есть отправка сообщенийОна работает, но когда я отправляю сообщение, текст в диве остается