| non-specialized | template <class T, class D = default_delete<T>> class unique_ptr; | 
|---|---|
| array specialization | template <class T, class D> class unique_ptr<T[],D>; | 
| member type | definition | notes | 
|---|---|---|
| element_type | first template parameter (T) | The type of the managed object | 
| deleter_type | second template parameter (D) | The type of the stored deleter. Defaults to default_delete<T> | 
| pointer | remove_reference<D>::type::pointer, if this type exists T*, otherwise | The pointer type |