Namespaces
Variants

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

From cppreference.net
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> の公開メンバ関数)