|
| template<typename Del = Deleter, typename = DeleterConstraint<Del>> |
| constexpr | unique_ptr (nullptr_t=nullptr) noexcept |
| | 空指针构造
|
| template<typename Del = Deleter, typename = DeleterConstraint<Del>> |
| constexpr | unique_ptr (pointer ptr) noexcept |
| | 从指针构造
|
| template<typename Del = Deleter, enable_if_t< is_constructible_v< Deleter, Del >, int > = 0> |
| constexpr | unique_ptr (pointer ptr, Del &&deleter) noexcept |
| | 从指针和复制删除器复制构造
|
|
constexpr | unique_ptr (unique_ptr &&) noexcept=default |
| | 移动构造函数
|
| 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> |
| constexpr | unique_ptr (unique_ptr< U, E > &&other) noexcept |
| | 从其他unique_ptr转换构造
|
|
| ~unique_ptr () noexcept |
| | 析构函数
|
|
unique_ptr & | operator= (unique_ptr &&) noexcept=default |
| | 移动赋值运算符
|
| template<typename U, typename E, enable_if_t< conjunction< safe_conversion< U, E >, is_assignable< deleter_type &, E && > >::value, int > = 0> |
| constexpr unique_ptr & | operator= (unique_ptr< U, E > &&other) noexcept |
| | 从其他unique_ptr移动赋值
|
| constexpr unique_ptr & | operator= (nullptr_t) noexcept |
| | nullptr赋值运算符
|
| constexpr add_lvalue_reference_t< element_type > | operator* () const noexcept(noexcept(*_NEFORCE declval< pointer >())) |
| | 解引用运算符
|
| constexpr pointer | operator-> () const noexcept |
| | 成员访问运算符
|
|
constexpr pointer | get () const noexcept |
| | 获取原始指针
|
|
constexpr deleter_type & | get_deleter () &noexcept |
| | 获取删除器引用
|
|
constexpr const deleter_type & | get_deleter () const &noexcept |
| | 获取删除器常量引用
|
|
constexpr deleter_type && | get_deleter () &&noexcept |
| | 获取删除器引用
|
|
constexpr const deleter_type && | get_deleter () const &&noexcept |
| | 获取删除器常量引用
|
| constexpr | operator bool () const noexcept |
| | bool转换运算符
|
|
constexpr pointer | release () noexcept |
| | 释放所有权
|
|
constexpr void | reset (pointer ptr=pointer()) noexcept |
| | 重置管理的指针
|
| constexpr void | swap (unique_ptr &other) noexcept |
| | 交换两个unique_ptr
|
|
| unique_ptr (const unique_ptr &)=delete |
| | 禁止复制构造
|
|
unique_ptr & | operator= (const unique_ptr &)=delete |
| | 禁止复制赋值
|
template<typename T, typename Deleter = default_deleter<T>>
class unique_ptr< T, Deleter >
独占智能指针
- 模板参数
-
| T | 元素类型 |
| Deleter | 删除器类型,默认为default_delete<T> |
管理动态分配对象的独占所有权,确保对象在离开作用域时被正确删除。
在文件 unique_ptr.hpp 第 206 行定义.