std::unique_ptr<T,Deleter>::~unique_ptr (3) - Linux Manuals
std::unique_ptr<T,Deleter>::~unique_ptr: std::unique_ptr<T,Deleter>::~unique_ptr
Command to display std::unique_ptr<T,Deleter>::~unique_ptr
manual in Linux: $ man 3 std::unique_ptr<T,Deleter>::~unique_ptr
NAME
std::unique_ptr<T,Deleter>::~unique_ptr - std::unique_ptr<T,Deleter>::~unique_ptr
Synopsis
~unique_ptr(); (since C++11)
If get() == nullptr there are no effects. Otherwise, the owned object is destroyed via get_deleter()(get()).
Requires that get_deleter()(get()) does not throw exceptions.
Notes
Although std::unique_ptr<T> with the default deleter may be constructed with incomplete_type T, the type T must be complete at the point of code where the destructor is called.
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
Pages related to std::unique_ptr<T,Deleter>::~unique_ptr
- std::unique_ptr<T,Deleter>::get (3) - std::unique_ptr<T,Deleter>::get
- std::unique_ptr<T,Deleter>::get_deleter (3) - std::unique_ptr<T,Deleter>::get_deleter
- std::unique_ptr<T,Deleter>::operator<< (3) - std::unique_ptr<T,Deleter>::operator<<
- std::unique_ptr<T,Deleter>::operator= (3) - std::unique_ptr<T,Deleter>::operator=
- std::unique_ptr<T,Deleter>::operator[] (3) - std::unique_ptr<T,Deleter>::operator[]
- std::unique_ptr<T,Deleter>::operatorbool (3) - std::unique_ptr<T,Deleter>::operatorbool
- std::unique_ptr<T,Deleter>::release (3) - std::unique_ptr<T,Deleter>::release
- std::unique_ptr<T,Deleter>::reset (3) - std::unique_ptr<T,Deleter>::reset
- std::unique_ptr<T,Deleter>::swap (3) - std::unique_ptr<T,Deleter>::swap
- std::unique_ptr<T,Deleter>::unique_ptr (3) - std::unique_ptr<T,Deleter>::unique_ptr
- std::unique_ptr (3) - std::unique_ptr
- std::unique_copy (3) - std::unique_copy
- std::unique_lock (3) - std::unique_lock
- std::unique_lock<Mutex>::lock (3) - std::unique_lock<Mutex>::lock
- std::unique_lock<Mutex>::mutex (3) - std::unique_lock<Mutex>::mutex
- std::unique_lock<Mutex>::operator= (3) - std::unique_lock<Mutex>::operator=