名前空間
変種
操作

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

From cppreference.com
 
 
 
 
 
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 メンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)