Я читал через Boost DateTime библиотеки Вот, который содержит много примеров, таких как этот:
time_zone_ptr zone(new posix_time_zone("MST-07"));
Мне было любопытно, почему использование ключевого слова «новый» не вызывает утечку памяти?
Я исследовал исходный код надстройки и заметил, что у него есть две разные версии конструктора, одна с shared_ptr, а другая, которая использует weak_ptr. Может кто-нибудь объяснить, как это работает, и почему вышеупомянутая строка безопасна для записи?
time_zone_ptr
это просто псевдоним для boost::shared_ptr<time_zone>
, Это умный указатель, который вступает во владение динамически размещенного объекта, из необработанного указателя, к которому он построен.
Других решений пока нет …