Ошибка в выталкивании уникального_птров из карты в векторC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка в выталкивании уникального_птров из карты в вектор

Сообщение Anonymous »

У меня есть std :: map std :: string и std :: unique_ptr . По сути, я хочу иметь карту с именем класса в качестве ключа String и уникальным указателем как соответствующее значение . И получить доступ к указателю как карту ["defived1"] и т. Д. (Объясняется в коде ниже).
Когда я итерации через std :: map и попытаться нажимать каждое значение на std :: vector , я вижу следующую ошибку

code> code>, я вижу следующую ошибку



.

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

std::unique_ptr::unique_ptr(const std::unique_ptr &)
': попытка ссылаться на удаленную функцию CreateInstanceFromlist C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ Incule \ XMEMORY

Im AM AM AM AM AM AM ON VISAL STUDIORENTIOR 15.9.1616.1616.1616.1616.16.16.1616.16.16.16.16.16.16.16.16.16.16.16.16. 14.16.27023 < /p>
Код реализации заключается в следующем. Baseint - это базовый состав с элементом int и чистым виртуальным replaceint () . DeviveInt1 и defivedint2 Реализуйте виртуальную функцию с различными значениями int и отличается от параметра в их конструкции.

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

#include "UserClass.h"
#include 
#include 
#include 
#include 
#include 
#include 

typedef std::vector vec_type;
typedef std::map map_type;

template std::unique_ptr createInstance(vec_type& vec) { return std::make_unique(); };
template std::unique_ptr createInstance(vec_type& vec, U u) { return std::make_unique(u); };

void fillVector(map_type& map)
{
vec_type my_vec;
for (auto const& it : map )
{
std::cout second));
}
Редактировать 2:
Как указано несколькими людьми, я сделал базовый дизайн, не используя уникальный_ptr как уникальный. Я вижу проблему, которую вы упомянули, и рассмотрю возможность перейти на wared_ptr или изменить дизайн. Спасибо за быстрый ответ. Я буду обновлять свои изменения здесь завтра.>

Подробнее здесь: https://stackoverflow.com/questions/589 ... o-a-vector
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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