Use smart pointers in your list, ie std::list<std::shared_ptr<my_obj>>.