|
| template<typename U, typename Del = Deleter, typename = DeleterConstraint<Del>, enable_if_t< safe_conversion_raw< U >::value, int > = 0> |
| MSTL_CONSTEXPR20 | unique_ptr (U ptr) noexcept |
| | 从指针构造
|
| template<typename U, typename Del = deleter_type, enable_if_t< conjunction< safe_conversion_raw< U >, is_copy_constructible< Del > >::value, int > = 0> |
| MSTL_CONSTEXPR20 | unique_ptr (U ptr, const deleter_type &del) noexcept |
| | 从指针和复制删除器构造
|
| template<typename U, typename Del = deleter_type, enable_if_t< conjunction< safe_conversion_raw< U >, is_move_constructible< Del > >::value, int > = 0> |
| MSTL_CONSTEXPR20 | unique_ptr (U ptr, enable_if_t<!is_lvalue_reference< Del >::value, Del && > del) noexcept |
| | 从指针和移动删除器构造
|
|
template<typename U, typename Del = deleter_type, typename DelMoveRef = remove_reference_t<Del>, enable_if_t< safe_conversion_raw< U >::value, int > = 0> |
| | unique_ptr (U, enable_if_t< is_lvalue_reference< Del >::value, DelMoveRef && >)=delete |
| | 禁止从右值引用删除器构造
|
|
| unique_ptr (unique_ptr &&)=default |
| | 移动构造函数
|
| template<typename Del = Deleter, typename = DeleterConstraint<Del>> |
| constexpr | unique_ptr (nullptr_t=nullptr) noexcept |
| | 空指针构造
|
| template<typename U, typename E, enable_if_t< conjunction< safe_conversion< U, E >, conditional_t< is_reference< Deleter >::value, is_same< E, Deleter >, is_convertible< E, Deleter > > >::value, int > = 0> |
| MSTL_CONSTEXPR20 | unique_ptr (unique_ptr< U, E > &&x) noexcept |
| | 从其他unique_ptr转换构造
|
|
MSTL_CONSTEXPR20 | ~unique_ptr () |
| | 析构函数
|
|
unique_ptr & | operator= (unique_ptr &&)=default |
| | 移动赋值运算符
|
| template<typename U, typename E, enable_if_t< conjunction< safe_conversion< U, E >, is_assignable< deleter_type &, E && >, int >::value > = 0> |
| MSTL_CONSTEXPR20 unique_ptr & | operator= (unique_ptr< U, E > &&x) noexcept |
| | 从其他unique_ptr移动赋值
|
| MSTL_CONSTEXPR20 unique_ptr & | operator= (nullptr_t) noexcept |
| | nullptr赋值运算符
|
| MSTL_CONSTEXPR20 add_lvalue_reference_t< element_type > | operator[] (size_t idx) const |
| | 数组下标运算符
|
|
MSTL_CONSTEXPR20 pointer | get () const noexcept |
| | 获取原始指针
|
|
MSTL_CONSTEXPR20 deleter_type & | get_deleter () noexcept |
| | 获取删除器引用
|
|
MSTL_CONSTEXPR20 const deleter_type & | get_deleter () const noexcept |
| | 获取const删除器引用
|
| MSTL_CONSTEXPR20 | operator bool () const noexcept |
| | bool转换运算符
|
|
MSTL_CONSTEXPR20 pointer | release () noexcept |
| | 释放所有权
|
| template<typename U, enable_if_t< conjunction< disjunction< is_same< U, pointer >, conjunction< is_same< pointer, element_type * >, is_pointer< U >, is_convertible< remove_pointer_t< U >(*)[], element_type(*)[]> > > >::value, int > = 0> |
| MSTL_CONSTEXPR20 void | reset (U ptr) noexcept |
| | 重置管理的指针
|
|
MSTL_CONSTEXPR20 void | reset (nullptr_t=nullptr) noexcept |
| | 重置为空指针
|
| MSTL_CONSTEXPR20 void | swap (unique_ptr &x) noexcept |
| | 交换两个unique_ptr
|
|
| unique_ptr (const unique_ptr &)=delete |
| | 禁止复制构造
|
|
unique_ptr & | operator= (const unique_ptr &)=delete |
| | 禁止复制赋值
|
| MSTL_CONSTEXPR20 add_lvalue_reference_t< element_type > | operator* () const noexcept(noexcept(*_MSTL declval< pointer >())) |
| | 解引用运算符
|
| MSTL_CONSTEXPR20 pointer | operator-> () const noexcept |
| | 成员访问运算符
|
template<typename T, typename Deleter>
class unique_ptr< T[], Deleter >
数组特化的unique_ptr
- 模板参数
-
在文件 unique_ptr.hpp 第 436 行定义.