unique_ptr вызывает деструктор только при reset

147
01 апреля 2019, 08:40

Почему std::unique_ptr<...> вызывает деструктор целевого объекта только если вызвать

std::unique_ptr<>::reset(nullptr);

При этом, если вызвать std::unique_ptr<>::release, то ничего не происходит, но указатель обнуляется.

Что делать необходимо дабы не происходило таких ситуаций?

Answer 1

При вызове std::unique_ptr::release владение указателем передается вызывающему коду. Игнорирование возвращаемого значения является ошибкой. Что делать? Ничего. Не надо вызывать release если нет намерения вручную удалить объект.

READ ALSO
Определение букв в слове. C++

Определение букв в слове. C++

По заданию нужно определить, сколько вариантов анаграмм можно составить из букв, содержащихся в слове, которое ввёл пользовательБукв может...

156
Размер переменных в функциях

Размер переменных в функциях

Почему под параметр-переменную функции выделяется 4 байта оперативной памяти, если тип short (2 байта)?

258
Построить график функции с++ (WinAPi)

Построить график функции с++ (WinAPi)

Стоит задача:построить график функции на координатной плоскости при помощи WInApiС WinApi сталкиваюсь первый раз

224