命名空间
变体
操作

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

来自 cppreference.com
void reset() noexcept;
(1) (库基础 TS v3)
template< class RR >
void reset( RR&& r );
(2) (库基础 TS v3)
1) 如果 unique_resource 拥有资源,则通过使用底层资源句柄调用删除器来释放资源。调用后,unique_resource 不再拥有资源。
2) 通过调用 (1) 替换资源,然后使用 std::forward<RR>(r) 为存储的资源句柄赋值,如果 std::is_nothrow_assignable_v<RS, RR>true,否则使用 std::as_const(r),其中 RS 是存储的资源句柄的类型。调用后,unique_resource 拥有资源。
如果存储资源句柄的复制赋值抛出异常,则调用 del_(r),其中 del 是删除器对象。
此重载仅在为存储资源句柄选择的赋值表达式是格式良好的情况下才参与重载解析。
如果 del_(r) 格式不佳,则程序格式不佳。
如果 del_(r) 导致未定义行为或抛出异常,则行为未定义。

内容

[编辑] 参数

r - 要管理的新资源的资源句柄

[编辑] 返回值

(无)

[编辑] 异常

2) 为存储的资源句柄赋值时抛出的任何异常。

[编辑] 注释

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

[编辑] 示例

[编辑] 另请参阅

替换托管对象
(std::unique_ptr<T,Deleter> 的公共成员函数) [编辑]