命名空间
变体
操作

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

来自 cppreference.cn
< cpp‎ | memory‎ | 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 前弃用*)
(在 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) 构造一个新的 auto_ptr,其指针通过调用 release() 获得。

[编辑] 参数

(无)

[编辑] 返回值

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

[编辑] 注释

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