Namespaces
Variants

std::inout_ptr_t<Smart,Pointer,Args...>:: inout_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 inout_ptr_t ( Smart & sp, Args... args ) ;
(1) (C++23以降)
inout_ptr_t ( const inout_ptr_t & ) = delete ;
(2) (C++23以降)
1) inout_ptr_t を作成する。 sp Smart & メンバにバインドするように適応させ、 args... 内の各引数 t std:: forward < T > ( t ) Args... 内の対応する型 T のメンバを初期化するようにキャプチャし、その後、保存された Pointer sp で初期化する( Smart がポインタ型の場合)。それ以外の場合は sp. get ( ) で初期化する。 Smart がポインタ型でない場合、 sp. release ( ) が呼び出される可能性があり、その場合デストラクタ内で再び呼び出されることはない。
2) コピーコンストラクタは明示的に削除されています。 inout_ptr_t はコピーも移動もできません。

目次

パラメータ

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

戻り値

(なし)

例外

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

注記

Smart がポインタ型でなく、かつコンストラクタによって sp. release ( ) が呼び出されない場合、デストラクタによって sp をリセットする前に呼び出される可能性があります。

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

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