Делеторы в умных указателях (например, std::unique_ptr, std::shared_ptr) используются для определения пользовательской функции или объекта, который будет вызван для освобождения ресурса, управляемого указателем, вместо стандартного оператора delete.
Типичные случаи использования:
new (например, файлы с помощью fclose, хэндлы WinAPI, ресурсы в памяти с использованием malloc и free).Пример с std::unique_ptr:
c
Пример с std::shared_ptr:
c