У меня проблема с созданием объектов, добавлением их в класс контейнера и выводом их из области видимости в C ++.
Например, мой main.cpp
Container container;
for (unsigned int i = 0; i < 10; i++) {
Item item;
container.add_item(item);
}
и интерфейс container.h
struct Container {
std::vector<std::reference_wrapper<Item>> items;
void add_item(Item& item); // Push back of items vector.
};
и item.h
struct Item {
std::unique_ptr<AnotherThing> unrelated_thing;
};
Проблемапозже в моем основном классе Контейнеры , созданные внутри цикла for, вышли из области видимости.Если я изменяю add_item для передачи по значению, это вызывает у меня проблемы с unique_ptr и конструктором копирования.
Есть ли какой-то идиоматический способ создания объектов внутри области действия и «передачи» их в другой класс?