Namespaces
Variants

std::out_ptr_t<Smart,Pointer,Args...>:: out_ptr_t

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
explicit out_ptr_t ( Smart & sp, Args... args ) ;
(1) (C++23以降)
out_ptr_t ( const out_ptr_t & ) = delete ;
(2) (C++23以降)
1) out_ptr_t を作成する。 sp Smart & メンバにバインドするように適応させ、 args... 内の各引数 t std:: forward < T > ( t ) Args... 内の対応する型 T のメンバを初期化するようにキャプチャし、その後保存されている Pointer を値初期化する。
その後、式が適切に形成されている場合は sp. reset ( ) を呼び出す。そうでない場合、 std:: is_default_constructible_v < Smart > true の場合 sp = Smart ( ) を呼び出す。両方のリセット操作が不適切な場合、プログラムは不適格となる。
2) コピーコンストラクタは明示的に削除されています。 out_ptr_t はコピーもムーブもできません。

目次

パラメータ

sp - アダプトするオブジェクト(通常はスマートポインタ)
args... - リセットに使用する引数をキャプチャする

戻り値

(なし)

例外

実装定義の例外をスローする可能性があります。

注記

構築後、 Pointer または void * のいずれかの変換関数の戻り値が指すオブジェクトは nullptr と等しい。

args... 内のすべての引数は、オブジェクト型の場合に作成された out_ptr_t にムーブされ、参照型の場合にはそのまま作成された out_ptr_t に転送されます。

out_ptr_t のコンストラクタは例外を送出することが許可されています。例えば、 sp std::shared_ptr の場合、新しい制御ブロックの割り当てはデストラクタではなくコンストラクタ内で実行される可能性があります。