Можем ли мы помешать std :: list очищать память?

Я определил этот список:

using SpecialEventList = list<SPECIAL_EVENT_S*>;

Пункты добавляются в этот список следующим образом:

m_listNewSpecialEvents.push_back(psEvent);

Исходный список указателей SPECIAL_EVENT_S принадлежит и управляется другой справкой по списку в классе приложения.

Меня беспокоит, что когда этот диалог закроется, m_listNewSpecialEvents автоматически удалит указатели, а я этого не хочу.

Можем ли мы помешать этому списку приводить в порядок память?


person Andrew Truckle    schedule 25.05.2021    source источник
comment
автоматически удалит указатели Почему вы так думаете?   -  person songyuanyao    schedule 25.05.2021
comment
@songyuanyao Я всегда понимал, что std :: list приводит в порядок сам себя.   -  person Andrew Truckle    schedule 25.05.2021
comment
Есть, но никогда не будет delete указателей. Он будет очищать только память, занятую указателями.   -  person Ted Lyngmo    schedule 25.05.2021
comment
@TedLyngmo Итак, мои исходные указатели / контент останутся нетронутыми.   -  person Andrew Truckle    schedule 25.05.2021
comment
@AndrewTruckle, std::vector тоже. И что?   -  person Enlico    schedule 25.05.2021
comment
@AndrewTruckle Да, память, на которую они указывают, не пострадает от уничтожения list   -  person Ted Lyngmo    schedule 25.05.2021
comment
Обычно у вас нет указателей в списке, у вас будет list<SPECIAL_EVENT_S>.   -  person super    schedule 25.05.2021
comment
@super Понятно. Спасибо ребята.   -  person Andrew Truckle    schedule 25.05.2021


Ответы (1)


Он не удалит указатели, если вы не удалите их явно. необработанные указатели не удаляются автоматически. ссылка < / а>

person dixit_chandra    schedule 25.05.2021