MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
unique_ptr< T[], Deleter > 模板类 参考

数组特化的unique_ptr 更多...

#include <unique_ptr.hpp>

Public 类型

using pointer = typename _INNER __unique_ptr_impl<T, Deleter>::pointer
 指针类型
using element_type = T
 元素类型
using deleter_type = Deleter
 删除器类型

Public 成员函数

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_ptroperator= (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_ptroperator= (unique_ptr< U, E > &&x) noexcept
 从其他unique_ptr移动赋值
MSTL_CONSTEXPR20 unique_ptroperator= (nullptr_t) noexcept
 nullptr赋值运算符
MSTL_CONSTEXPR20 add_lvalue_reference_t< element_typeoperator[] (size_t idx) const
 数组下标运算符
MSTL_CONSTEXPR20 pointer get () const noexcept
 获取原始指针
MSTL_CONSTEXPR20 deleter_typeget_deleter () noexcept
 获取删除器引用
MSTL_CONSTEXPR20 const deleter_typeget_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_ptroperator= (const unique_ptr &)=delete
 禁止复制赋值
MSTL_CONSTEXPR20 add_lvalue_reference_t< element_typeoperator* () const noexcept(noexcept(*_MSTL declval< pointer >()))
 解引用运算符
MSTL_CONSTEXPR20 pointer operator-> () const noexcept
 成员访问运算符

详细描述

template<typename T, typename Deleter>
class unique_ptr< T[], Deleter >

数组特化的unique_ptr

模板参数
T数组元素类型
Deleter删除器类型

在文件 unique_ptr.hpp436 行定义.

构造及析构函数说明

◆ unique_ptr() [1/5]

template<typename T, typename Deleter>
template<typename U, typename Del = Deleter, typename = DeleterConstraint<Del>, enable_if_t< safe_conversion_raw< U >::value, int > = 0>
MSTL_CONSTEXPR20 unique_ptr< T[], Deleter >::unique_ptr ( U ptr)
inlineexplicitnoexcept

从指针构造

模板参数
U指针类型
Del删除器类型
参数
ptr要管理的数组指针

在文件 unique_ptr.hpp469 行定义.

被这些函数引用 operator=(), operator=(), operator=(), operator=(), swap(), unique_ptr(), unique_ptr() , 以及 unique_ptr().

◆ unique_ptr() [2/5]

template<typename T, typename Deleter>
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< T[], Deleter >::unique_ptr ( U ptr,
const deleter_type & del )
inlinenoexcept

从指针和复制删除器构造

模板参数
U指针类型
Del删除器类型
参数
ptr要管理的数组指针
del删除器对象

在文件 unique_ptr.hpp480 行定义.

◆ unique_ptr() [3/5]

template<typename T, typename Deleter>
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< T[], Deleter >::unique_ptr ( U ptr,
enable_if_t<!is_lvalue_reference< Del >::value, Del && > del )
inlinenoexcept

从指针和移动删除器构造

模板参数
U指针类型
Del删除器类型
参数
ptr要管理的数组指针
del删除器对象

在文件 unique_ptr.hpp492 行定义.

引用了 _MSTL , 以及 integral_constant< bool, Value >< false >::value.

◆ unique_ptr() [4/5]

template<typename T, typename Deleter>
template<typename Del = Deleter, typename = DeleterConstraint<Del>>
unique_ptr< T[], Deleter >::unique_ptr ( nullptr_t = nullptr)
inlineconstexprnoexcept

空指针构造

模板参数
Del删除器类型

在文件 unique_ptr.hpp509 行定义.

◆ unique_ptr() [5/5]

template<typename T, typename Deleter>
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< T[], Deleter >::unique_ptr ( unique_ptr< U, E > && x)
inlinenoexcept

从其他unique_ptr转换构造

模板参数
U源元素类型
E源删除器类型
参数
x源unique_ptr

在文件 unique_ptr.hpp519 行定义.

引用了 _MSTL, forward() , 以及 unique_ptr().

成员函数说明

◆ operator bool()

template<typename T, typename Deleter>
MSTL_CONSTEXPR20 unique_ptr< T[], Deleter >::operator bool ( ) const
inlineexplicitnoexcept

bool转换运算符

返回
是否管理非空数组

在文件 unique_ptr.hpp577 行定义.

引用了 unique_ptr< T, Deleter >::get().

◆ operator*()

MSTL_CONSTEXPR20 add_lvalue_reference_t< element_type > unique_ptr< T, Deleter >::operator* ( ) const
inlinenoexcept

解引用运算符

返回
管理对象的引用

在文件 unique_ptr.hpp376 行定义.

◆ operator->()

MSTL_CONSTEXPR20 pointer unique_ptr< T, Deleter >::operator-> ( ) const
inlinenoexcept

成员访问运算符

返回
管理对象的指针

在文件 unique_ptr.hpp385 行定义.

◆ operator=() [1/2]

template<typename T, typename Deleter>
MSTL_CONSTEXPR20 unique_ptr & unique_ptr< T[], Deleter >::operator= ( nullptr_t )
inlinenoexcept

nullptr赋值运算符

返回
当前对象引用

在文件 unique_ptr.hpp554 行定义.

引用了 unique_ptr< T, Deleter >::reset() , 以及 unique_ptr().

◆ operator=() [2/2]

template<typename T, typename Deleter>
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 & unique_ptr< T[], Deleter >::operator= ( unique_ptr< U, E > && x)
inlinenoexcept

从其他unique_ptr移动赋值

模板参数
U源元素类型
E源删除器类型
参数
x源unique_ptr
返回
当前对象引用

在文件 unique_ptr.hpp544 行定义.

引用了 _MSTL, forward(), unique_ptr< T, Deleter >::get_deleter(), unique_ptr< T, Deleter >::reset() , 以及 unique_ptr().

◆ operator[]()

template<typename T, typename Deleter>
MSTL_CONSTEXPR20 add_lvalue_reference_t< element_type > unique_ptr< T[], Deleter >::operator[] ( size_t idx) const
inline

数组下标运算符

参数
idx索引
返回
数组元素的引用

在文件 unique_ptr.hpp564 行定义.

引用了 unique_ptr< T, Deleter >::get().

◆ reset()

template<typename T, typename Deleter>
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 unique_ptr< T[], Deleter >::reset ( U ptr)
inlinenoexcept

重置管理的指针

模板参数
U指针类型
参数
ptr新的指针

在文件 unique_ptr.hpp599 行定义.

引用了 _MSTL , 以及 move().

◆ swap()

template<typename T, typename Deleter>
MSTL_CONSTEXPR20 void unique_ptr< T[], Deleter >::swap ( unique_ptr< T[], Deleter > & x)
inlinenoexcept

交换两个unique_ptr

参数
x要交换的对象

在文件 unique_ptr.hpp612 行定义.

引用了 unique_ptr() , 以及 integral_constant< bool, Value >::value.


该类的文档由以下文件生成: