I have a class which contains a vector<shared_ptr<T>>:
using SharedItems = std::vector<std::shared_ptr<Item>>;
class LargeLift
{
public:
SharedItems& getItems()
{
return _items;
}
void setSharedItems(SharedItems& items)
{
_items = items;
}
private:
SharedItems _items;
};
I then do the following:
LargeLift b;
{
LargeLift a;
// Gets populated
SharedItems& items = a.getItems();
b.setSharedItems(items);
}
// Variable a is now out of scope
SharedItems& items2 = b.getItems();
Is the last line valid, given a has gone out of scope?