unique_ptr の 7 種類のコンストラクターがあります。
unique_ptr();
unique_ptr(nullptr_t);
explicit unique_ptr(
pointer _Ptr
);
unique_ptr(
Type *_Ptr,
typename conditional<
is_reference<Del>::value,
Del,
typename add_reference<const Del>::type>::type _Deleter
);
unique_ptr(
pointer ptr,
typename remove_reference<Del>::type&& _Deleter
);
unique_ptr(
unique_ptr&& _Right
);
template<class Ty2, Class Del2>
unique_ptr(
unique_ptr<Ty2, Del2>&& _Right
);
パラメーター
パラメーター |
Description |
|---|---|
_Ptr |
unique_ptr. に割り当てるリソースへのポインター。 |
_Deleter |
unique_ptr に割り当てる deleter。 |
_Right |
unique_ptr がわかります unique_ptr への rvalue reference は新しく生成された unique_ptr に割り当てられた移動です。 |
解説
最初の 2 のコンストラクターはリソースを管理するオブジェクトを構築します。3 つ目のコンストラクターはstored_ptr で ptr を格納します。4 つ目のコンストラクターはstored_ptr で ptr と stored_deleter で deleter を格納します。
5 つ目のコンストラクターはstored_ptr で ptr を保存しstored_deleter に deleter を移動します。6 つ目と 7 つ目のコンストラクターはstored_ptr で right.reset() を保存しstored_deleter に right.get_deleter() を移動します。
必要条件
ヘッダー : <memory>
名前空間: std