C ++ std :: queue :: pop () вызывает деструктор. Что из типов указателей?

у меня естьstd::queue это обернуто как шаблонный класс, чтобы сделать потокобезопасную очередь. У меня есть две версии этого класса: одна, которая хранит типы значений, другая, которая хранит типы указателей.

Для типа указателя яУ меня возникли проблемы с удалением элементов очереди при уничтожении. Причина в том, что я неНе знаю, как безопасно удалить элементы из очереди.

это ссылки состояния (пусто, так что я думаю, что это нена самом деле это), что единственный способ удалить элементы из очереди - это вызватьpop(), Ссылка также говорит, чтоpop() вызывает деструктор для предмета.

Что ж, это вызывает проблемы с моими типами указателей, потому что они могут указывать или не указывать на агрегаты. Если один из них указывает на агрегат, все они будут это делать, но поскольку оболочка является шаблонной, нет гарантии, с каким типом (агрегированным или неагрегированным) мы имеем дело.

Так когдаpop() вызывает деструктор, что происходит? Как мне убедиться, что все удаляется и память освобождается правильно?

Наконец, мое решение использует более старую версию GCC для ARM9. Я неЯ не могу это контролировать. Я понимаю, что есть библиотеки, которые имеют интеллектуальные указатели и контейнеры, которые могут помочь здесь, но они для меня запрещены ».

Ответы на вопрос(3)

Ваш ответ на вопрос