std::experimental::unique_resource<R, D>::reset
来自 cppreference.cn
< cpp | experimental | unique resource
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> 的公共成员函数) |