Почему этот пример time_zone_ptr не содержит утечку памяти?

Я читал через Boost DateTime библиотеки Вот, который содержит много примеров, таких как этот:

time_zone_ptr zone(new posix_time_zone("MST-07"));

Мне было любопытно, почему использование ключевого слова «новый» не вызывает утечку памяти?
Я исследовал исходный код надстройки и заметил, что у него есть две разные версии конструктора, одна с shared_ptr, а другая, которая использует weak_ptr. Может кто-нибудь объяснить, как это работает, и почему вышеупомянутая строка безопасна для записи?

4

Решение

time_zone_ptr это просто псевдоним для boost::shared_ptr<time_zone>, Это умный указатель, который вступает во владение динамически размещенного объекта, из необработанного указателя, к которому он построен.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]