Визуальный детектор утечек с std :: shared_ptr

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

std::shared_ptr<the_type>(new the_type(the_parameter))

Должен ли я назвать что-то еще, как удалитель или даже shared_ptr::reset() Это визуальный детектор утечки, который сообщает мне о ложной утечке, или он работает до shared_ptr на самом деле удаляется?

Благодарю.

примечание: я использую vld 2.2.3, VS2012, Windows 7/8

0

Решение

Трудно сказать без кода, но одна очевидная возможность состоит в том, что у вас есть цикл. Просто используя std::shared_ptr везде рано или поздно это приведет к проблемам; это полезный инструмент для конкретных случаев, но он не решит всех ваших проблем.

0

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

Нет ничего плохого в том, чтобы создать общий указатель так, как вы показали. Похоже, что детектор утечки сообщает о поддельных утечках или вы используете его неправильно. В качестве примечания рассмотрим использование std::make_shared вместо явного new и конструктор общих указателей — как правило, он более эффективен и безопасен.

1

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