命名空间
变体
操作

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

来自 cppreference.cn
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> 的公共成员函数) [编辑]