std::unique_ptr::~unique_ptr
From cppreference.com
< cpp | memory | unique ptr
~unique_ptr();
|
(since C++11) | |
If get() == nullptr
there are no effects. Otherwise, the owned object is destroyed via get_deleter()(get()).
[edit] Example
The following program demonstrates usage of a custom deleter.
#include <iostream> #include <memory> int main () { auto deleter = [](int* ptr){ std::cout << "[deleter called]\n"; }; std::unique_ptr<int,decltype(deleter)> uniq(new int, deleter); std::cout << uniq ? "not empty\n" : "empty\n"; uniq.reset(); std::cout << uniq ? "not empty\n" : "empty\n"; }
Output:
not empty [deleter called] empty