Передайте std::unique_ptr<> в функцию [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
 Передайте std::unique_ptr<> в функцию [закрыто]

Сообщение Anonymous »

ВСЕ,

Код: Выделить всё

std::unique_ptr ptr;
std::vector vec;;

Bar( ptr );
vec.push_back( ptr );

void Bar(std::unique_ptr &obj)
{
obj = std::make_unique();
}
где Foo — это простой класс с сеттерами и геттерами.
при попытке скомпилировать с помощью MSVC 2017 я получаю:

Код: Выделить всё

c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xmemory0(881): error C2280: 'std::unique_ptr::unique_ptr(const std::unique_ptr &)': attempting to reference a deleted function
Я получил код из раздела «Как передать std::unique_ptr в функцию».
Должен ли я объявить там явный деструктор?
Что странно, в моем коде нет красного индикатора...
TIA!!
РЕДАКТИРОВАТЬ:
Фактическая ошибка появляется намного ниже в журнале сборки. Извините, наверное, я не так уж много прокручивал.
Ошибка в моем коде находится в строке push_back().
Что я не понимаю, почему в редакторе нет индикации? Это действительно сбивает с толку...

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-function

Вернуться в «C++»