#cpp #указатели #cpp17
Почему std::unique_ptr<...> вызывает деструктор целевого объекта только если вызвать std::unique_ptr<>::reset(nullptr); При этом, если вызвать std::unique_ptr<>::release, то ничего не происходит, но указатель обнуляется. Что делать необходимо дабы не происходило таких ситуаций?
Ответы
Ответ 1
При вызове std::unique_ptr::release владение указателем передается вызывающему коду. Игнорирование возвращаемого значения является ошибкой. Что делать? Ничего. Не надо вызывать release если нет намерения вручную удалить объект.
Комментариев нет:
Отправить комментарий