std::experimental::unique_resource<R, D>::reset
< 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::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> 的公开成员函数) |