NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
独占智能指针

独占智能指针类和辅助工具 更多...

class  unique_ptr< T, Deleter >
 独占智能指针 更多...
class  unique_ptr< T[], Deleter >
 数组特化的unique_ptr 更多...

函数

template<typename T, typename Deleter, enable_if_t< is_swappable< Deleter >::value &&is_swappable< T >::value, int > = 0>
void swap (unique_ptr< T, Deleter > &lhs, unique_ptr< T, Deleter > &rhs) noexcept
 交换两个unique_ptr
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 相等比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的相等比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的相等比较运算符
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 不等比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的不等比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的不等比较运算符
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 小于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的小于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的小于比较运算符
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 大于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的大于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的大于比较运算符
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 小于等于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的小于等于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的小于等于比较运算符
template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= (const unique_ptr< T, D > &lhs, const unique_ptr< U, E > &rhs)
 大于等于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= (const unique_ptr< T, D > &lhs, nullptr_t)
 与nullptr的大于等于比较运算符
template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= (nullptr_t, const unique_ptr< T, D > &rhs)
 nullptr与unique_ptr的大于等于比较运算符
template<typename T, typename U>
unique_ptr< T > static_pointer_cast (const unique_ptr< U > &ptr)=delete
 禁止的static_pointer_cast
template<typename T, typename U>
unique_ptr< T > const_pointer_cast (const unique_ptr< U > &ptr)=delete
 禁止的const_pointer_cast
template<typename T, typename U>
unique_ptr< T > reinterpret_pointer_cast (const unique_ptr< U > &ptr)=delete
 禁止的reinterpret_pointer_cast
template<typename T, typename U>
unique_ptr< T > dynamic_pointer_cast (const unique_ptr< U > &ptr)=delete
 禁止的dynamic_pointer_cast
template<typename T, typename U>
NEFORCE_CONSTEXPR20 unique_ptr< T > static_pointer_cast (unique_ptr< U > &&ptr)
 static_pointer_cast
template<typename T, typename U>
NEFORCE_CONSTEXPR20 unique_ptr< T > const_pointer_cast (unique_ptr< U > &&ptr)
 const_pointer_cast
template<typename T, typename U>
unique_ptr< T > reinterpret_pointer_cast (unique_ptr< U > &&ptr)
 const_pointer_cast
template<typename T, typename U>
unique_ptr< T > dynamic_pointer_cast (unique_ptr< U > &&ptr)
 reinterpret_pointer_cast
template<typename T, typename... Args, enable_if_t<!is_array< T >::value, int > = 0>
NEFORCE_CONSTEXPR20 unique_ptr< T > make_unique (Args &&... args)
 创建unique_ptr
template<typename T, enable_if_t< is_unbounded_array< T >::value, int > = 0>
NEFORCE_CONSTEXPR20 unique_ptr< T > make_unique (const size_t len)
 创建unique_ptr
template<typename T, typename... Args, enable_if_t< is_bounded_array< T >::value, int > = 0>
unique_ptr< T > make_unique (Args &&...)=delete
 禁止创建已知边界数组的make_unique

详细描述

独占智能指针类和辅助工具

函数说明

◆ const_pointer_cast() [1/2]

template<typename T, typename U>
unique_ptr< T > const_pointer_cast ( const unique_ptr< U > & ptr)
delete

禁止的const_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
注解
由于unique_ptr是独占所有权,不能从const引用转换

◆ const_pointer_cast() [2/2]

template<typename T, typename U>
NEFORCE_CONSTEXPR20 unique_ptr< T > const_pointer_cast ( unique_ptr< U > && ptr)

const_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
返回
转换后的unique_ptr

在文件 unique_ptr.hpp895 行定义.

◆ dynamic_pointer_cast() [1/2]

template<typename T, typename U>
unique_ptr< T > dynamic_pointer_cast ( const unique_ptr< U > & ptr)
delete

禁止的dynamic_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
注解
由于unique_ptr是独占所有权,不能从const引用转换

◆ dynamic_pointer_cast() [2/2]

template<typename T, typename U>
unique_ptr< T > dynamic_pointer_cast ( unique_ptr< U > && ptr)

reinterpret_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
返回
转换后的unique_ptr

在文件 unique_ptr.hpp919 行定义.

引用了 move().

◆ make_unique() [1/3]

◆ make_unique() [2/3]

template<typename T, typename... Args, enable_if_t< is_bounded_array< T >::value, int > = 0>
unique_ptr< T > make_unique ( Args && ...)
delete

禁止创建已知边界数组的make_unique

模板参数
T已知边界数组类型
Args参数类型

◆ make_unique() [3/3]

template<typename T, enable_if_t< is_unbounded_array< T >::value, int > = 0>
NEFORCE_CONSTEXPR20 unique_ptr< T > make_unique ( const size_t len)

创建unique_ptr

模板参数
T数组元素类型
参数
len数组长度
返回
管理新数组的unique_ptr

在文件 unique_ptr.hpp974 行定义.

◆ operator!=() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

不等比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否不等

在文件 unique_ptr.hpp648 行定义.

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

◆ operator!=() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的不等比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否非空

在文件 unique_ptr.hpp660 行定义.

◆ operator!=() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的不等比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
是否非空

在文件 unique_ptr.hpp672 行定义.

◆ operator<() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

小于比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否小于

在文件 unique_ptr.hpp687 行定义.

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

◆ operator<() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的小于比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否小于nullptr

在文件 unique_ptr.hpp700 行定义.

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

◆ operator<() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的小于比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
nullptr是否小于

在文件 unique_ptr.hpp712 行定义.

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

◆ operator<=() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

小于等于比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否小于等于

在文件 unique_ptr.hpp766 行定义.

◆ operator<=() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的小于等于比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否小于等于nullptr

在文件 unique_ptr.hpp778 行定义.

◆ operator<=() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator<= ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的小于等于比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
nullptr是否小于等于

在文件 unique_ptr.hpp790 行定义.

◆ operator==() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

相等比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否相等

在文件 unique_ptr.hpp609 行定义.

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

◆ operator==() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的相等比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否为空

在文件 unique_ptr.hpp621 行定义.

◆ operator==() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的相等比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
是否为空

在文件 unique_ptr.hpp633 行定义.

◆ operator>() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

大于比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否大于

在文件 unique_ptr.hpp727 行定义.

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

◆ operator>() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的大于比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否大于nullptr

在文件 unique_ptr.hpp739 行定义.

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

◆ operator>() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator> ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的大于比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
nullptr是否大于

在文件 unique_ptr.hpp751 行定义.

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

◆ operator>=() [1/3]

template<typename T, typename D, typename U, typename E>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= ( const unique_ptr< T, D > & lhs,
const unique_ptr< U, E > & rhs )

大于等于比较运算符

模板参数
T左操作数元素类型
D左操作数删除器类型
U右操作数元素类型
E右操作数删除器类型
参数
lhs左操作数
rhs右操作数
返回
是否大于等于

在文件 unique_ptr.hpp805 行定义.

◆ operator>=() [2/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= ( const unique_ptr< T, D > & lhs,
nullptr_t  )

与nullptr的大于等于比较运算符

模板参数
T元素类型
D删除器类型
参数
lhsunique_ptr对象
返回
是否大于等于nullptr

在文件 unique_ptr.hpp817 行定义.

◆ operator>=() [3/3]

template<typename T, typename D>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator>= ( nullptr_t ,
const unique_ptr< T, D > & rhs )

nullptr与unique_ptr的大于等于比较运算符

模板参数
T元素类型
D删除器类型
参数
rhsunique_ptr对象
返回
nullptr是否大于等于

在文件 unique_ptr.hpp829 行定义.

◆ reinterpret_pointer_cast() [1/2]

template<typename T, typename U>
unique_ptr< T > reinterpret_pointer_cast ( const unique_ptr< U > & ptr)
delete

禁止的reinterpret_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
注解
由于unique_ptr是独占所有权,不能从const引用转换

◆ reinterpret_pointer_cast() [2/2]

template<typename T, typename U>
unique_ptr< T > reinterpret_pointer_cast ( unique_ptr< U > && ptr)

const_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
返回
转换后的unique_ptr

在文件 unique_ptr.hpp907 行定义.

◆ static_pointer_cast() [1/2]

template<typename T, typename U>
unique_ptr< T > static_pointer_cast ( const unique_ptr< U > & ptr)
delete

禁止的static_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
注解
由于unique_ptr是独占所有权,不能从const引用转换

◆ static_pointer_cast() [2/2]

template<typename T, typename U>
NEFORCE_CONSTEXPR20 unique_ptr< T > static_pointer_cast ( unique_ptr< U > && ptr)

static_pointer_cast

模板参数
T目标类型
U源类型
参数
ptr源unique_ptr
返回
转换后的unique_ptr

在文件 unique_ptr.hpp883 行定义.

◆ swap()

template<typename T, typename Deleter, enable_if_t< is_swappable< Deleter >::value &&is_swappable< T >::value, int > = 0>
void swap ( unique_ptr< T, Deleter > & lhs,
unique_ptr< T, Deleter > & rhs )
noexcept

交换两个unique_ptr

模板参数
T元素类型
Deleter删除器类型
参数
lhs左操作数
rhs右操作数

在文件 unique_ptr.hpp594 行定义.