std::shared_ptr::reset

来自cppreference.com
< cpp‎ | memory‎ | shared ptr

 
 
 
 
 
void reset();
(1) (C++11 起)
template< class Y >
void reset( Y* ptr );
(2) (C++11 起)
template< class Y, class Deleter >
void reset( Y* ptr, Deleter d );
(3) (C++11 起)
template< class Y, class Deleter, class Alloc >
void reset( Y* ptr, Deleter d, Alloc alloc );
(4) (C++11 起)
替换被管理对象指向的对象的ptr。可以提供可选的删除d,这是用来摧毁新的对象时,没有shared_ptr对象拥有它。默认情况下,作为delete表达的删除。总是选择正确的delete表达提供的类型对应,这是实现函数模板使用一个单独的参数Y的原因.
原文:
Replaces the managed object with an object pointed to by ptr. Optional deleter d can be supplied, which is later used to destroy the new object when no shared_ptr objects own it. By default, delete expression is used as deleter. Proper delete expression corresponding to the supplied type is always selected, this is the reason why the function is implemented as template using a separate parameter Y.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
如果*this已经拥有了一个对象,它是拥有它的最后shared_ptr,对象被销毁通过所拥有的删除.
原文:
If *this already owns an object and it is the last shared_ptr owning it, the object is destroyed through the owned deleter.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
如果指向的对象的ptr已经拥有的功能导致未定义的行为.
原文:
If the object pointed to by ptr is already owned, the function results in undefined behavior.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
1)
释放所有权的管理对象,如果有的话。通话结束后,*this管理对象.
原文:
Releases the ownership of the managed object, if any. After the call, *this manages no object.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2-4)
替换被管理对象指向的对象的ptrY必须是一个完整的类型和隐式转换为T。此外
原文:
Replaces the managed object with an object pointed to by ptr. Y must be a complete type and implicitly convertible to T. Additionally:
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
使用delete表达式的Deleter的。表达必须提供一个有效的删除,即delete ptr必须有充分的形成,具有定义良好的行为并没有抛出任何异常。有效地调用shared_ptr<T>(ptr).swap(*this);.
原文:
Uses the delete expression as the deleter. A valid delete expression must be available, i.e. delete ptr must be well formed, have well-defined behavior and not throw any exceptions. Effectively calls shared_ptr<T>(ptr).swap(*this);.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
3)
使用指定的删除d的Deleter的。 Deleter的类型必须是可调用的T,即d(ptr)必须有充分的形成,具有定义良好的行为并没有抛出任何异常。 Deleter必须CopyConstructible。有效地调用shared_ptr<T>(ptr, d).swap(*this);.
原文:
Uses the specified deleter d as the deleter. Deleter must be callable for the type T, i.e. d(ptr) must be well formed, have well-defined behavior and not throw any exceptions. Deleter must be CopyConstructible. Effectively calls shared_ptr<T>(ptr, d).swap(*this);.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
4)
相同(3),但另外使用一个副本alloc供内部使用的数据的分配。 Alloc必须Allocator。拷贝构造函数和析构函数不能抛出异常。有效地调用shared_ptr<T>(ptr, d, alloc).swap(*this);.
原文:
Same as (3), but additionally uses a copy of alloc for allocation of data for internal use. Alloc must be a Allocator. The copy constructor and destructor must not throw exceptions. Effectively calls shared_ptr<T>(ptr, d, alloc).swap(*this);.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

ptr -
指针指向的对象的拥有权
原文:
pointer to an object to acquire ownership of
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
d -
删除器来存储删除对象
原文:
deleter to store for deletion of the object
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
alloc -
分配器用于内部分配
原文:
allocator to use for internal allocations
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

(无)
原文:
(none)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

1)
noexcept 规定:  
noexcept
  
2-4)
指定的有关构造.
原文:
As specified by the relevant constructor .
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

[编辑] 另请参阅

构造新的 shared_ptr
(公开成员函数) [编辑]