std::auto_ptr<T>::operator auto_ptr<Y>
C++11 中已弃用,C++17 中已移除
template< class Y >
operator auto_ptr_ref<Y>() throw(); (1)
template< class Y >
operator auto_ptr<Y>() throw(); (2)
将 *this
转换为一个指向不同类型 Y
的 auto_ptr。
-
返回一个实现定义的类型,该类型持有对
*this
的引用。std::auto_ptr 可从此模板转换和赋值。实现允许使用不同的模板名称或以其他方式实现等效功能。 -
通过调用
release()
获取指针来构造一个新的 auto_ptr。
参数
(无)
返回值
- 一个实现定义的类型,该类型持有对
*this
的引用 - 通过调用
release()
获取指针的 auto_ptr。
备注
提供了从 auto_ptr_ref 的构造函数和复制赋值运算符,以便从无名临时变量复制构造和赋值 std::auto_ptr。由于其复制构造函数和复制赋值运算符将参数作为非 const 引用,因此它们不能直接绑定右值参数。但是,可以执行用户定义的转换(这将释放原始 auto_ptr),然后调用接受 auto_ptr_ref 作为值的构造函数或复制赋值运算符。这是移动语义的早期实现。