std::experimental::unique_resource<R, D>::reset
From cppreference.com
< cpp | experimental | unique resource
| void reset() noexcept; |
(1) | (ライブラリ基本TS v3) |
| template< class RR > void reset( RR&& r ); |
(2) | (ライブラリ基本TS v3) |
1) リソースを管理している場合、デリータを呼び出してリソースを破棄します。この呼び出し後、
unique_resource はリソースを管理しません。2) std::forward<RR>(r) を使用してリソースを置き換えます。これは、std::is_nothrow_assignable_v<RS, RR> が true の場合に適用されます。それ以外の場合は std::as_const(r) を使用します。ここで、
RS は格納されているリソースハンドルの型です。この呼び出し後、unique_resource はリソースを管理します。 格納されているリソースハンドルのコピー代入で例外が発生した場合、デリータオブジェクト
del を使用して del_(r) が呼び出されます。 このオーバーロードは、選択された代入式が格納されているリソースハンドルの代入に対して正しく形成されている場合にのみ、オーバーロード解決に参加します。
del_(r) が正しく形成されていない場合、プログラムは不適切に形成されます。
del_(r) が未定義の動作を引き起こすか、例外をスローする場合、動作は未定義です。
目次 |
[編集] パラメータ
| r | - | 管理する新しいリソースのリソースハンドル |
[編集] 戻り値
(なし)
[編集] 例外
2) 格納されているリソースハンドルの代入中にスローされる例外。
[編集] 注意
このメカニズムはリソースの漏洩を確実に防ぎます。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 管理対象オブジェクトを置き換える ( std::unique_ptr<T,Deleter> の public メンバ関数) |