Namespaces
Variants

std::experimental::unique_resource<R, D>:: reset

From cppreference.net
void reset ( ) noexcept ;
(1) (库基础技术规范 v3)
template < class RR >
void reset ( RR && r ) ;
(2) (库基础技术规范 v3)
1) 通过使用底层资源句柄调用删除器来释放资源,前提是该 unique_resource 拥有该资源。调用后 unique_resource 不再拥有该资源。
2) 通过调用 (1) 替换资源,随后若 std:: is_nothrow_assignable_v < RS, RR > true 则使用 std:: forward < RR > ( r ) 赋值存储的资源句柄,否则使用 std:: as_const ( r ) ,其中 RS 为存储资源句柄的类型。调用后 unique_resource 持有该资源的所有权。
如果存储资源句柄的复制赋值操作抛出异常,则调用 del_ ( r ) ,其中 del 是删除器对象。
仅当所选赋值表达式对存储的资源句柄进行赋值时格式正确,此重载才会参与重载决策。
如果 del_ ( r ) 的格式不正确,则程序是非良构的。
如果 del_ ( r ) 导致未定义行为或抛出异常,则此行为是未定义的。

目录

参数

r - 用于管理新资源的资源句柄

返回值

(无)

异常

2) 在分配存储资源句柄时抛出的任何异常。

注释

该机制确保资源不会泄漏。

示例

参见

替换被管理对象
( std::unique_ptr<T,Deleter> 的公开成员函数)