##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# 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.

Run this code

    #include <iostream>
    #include <memory>

    int main ()
    {
        auto deleter = [](int* ptr){
            std::cout << "[deleter called]\n";
            delete ptr;
        };

        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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/memory/unique_ptr/%7Eunique_ptr&oldid=66609"