命名空间
变体
操作

std::auto_ptr<T>::operator auto_ptr<Y>

来自 cppreference.cn
< cpp‎ | 内存‎ | auto ptr
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
 
template< class Y >
operator auto_ptr_ref<Y>() throw();
(1) (C++11 中已弃用)
(在 C++17 中已移除)
template< class Y >
operator auto_ptr<Y>() throw();
(2) (C++11 中已弃用)
(在 C++17 中已移除)

*this 转换为不同类型 Yauto_ptr

1) 返回一个持有 *this 引用的实现定义类型。std::auto_ptr 可以从这个模板进行转换赋值。实现可以为该模板提供不同的名称或以其他方式实现等效功能。
2) 通过调用 release() 获取指针,构造一个新的 auto_ptr

[编辑] 参数

(无)

[编辑] 返回值

1) 一个持有 *this 引用的实现定义类型。
2) 一个 auto_ptr,其指针通过调用 release() 获得。

[编辑] 注意

提供来自 auto_ptr_ref 的构造函数和拷贝赋值运算符是为了允许从无名临时对象进行 std::auto_ptr 的拷贝构造和赋值。由于其拷贝构造函数和拷贝赋值运算符将参数作为非 const 引用,它们不能直接绑定右值参数。然而,可以执行用户定义的转换 (1)(2)(这会释放原始的 auto_ptr),然后调用按值接收 auto_ptr_ref 的构造函数或拷贝赋值运算符。这是移动语义的早期实现。