std::inout_ptr_t<Smart,Pointer,Args...>:: inout_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
inout_ptr_t::inout_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
inout_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (C++23以降) |
|
inout_ptr_t
(
const
inout_ptr_t
&
)
=
delete
;
|
(2) | (C++23以降) |
inout_ptr_t
を作成する。
sp
を
Smart
&
メンバにバインドするように適応させ、
args...
内の各引数
t
を
std::
forward
<
T
>
(
t
)
で
Args...
内の対応する型
T
のメンバを初期化するようにキャプチャし、その後、保存された
Pointer
を
sp
で初期化する(
Smart
がポインタ型の場合)。それ以外の場合は
sp.
get
(
)
で初期化する。
Smart
がポインタ型でない場合、
sp.
release
(
)
が呼び出される可能性があり、その場合デストラクタ内で再び呼び出されることはない。
inout_ptr_t
はコピーも移動もできません。
目次 |
パラメータ
| sp | - | アダプトするオブジェクト(通常はスマートポインタ) |
| args... | - | リセットに使用する引数をキャプチャする |
戻り値
(なし)
例外
実装定義の例外をスローする可能性があります。
注記
Smart
がポインタ型でなく、かつコンストラクタによって
sp.
release
(
)
が呼び出されない場合、デストラクタによって
sp
をリセットする前に呼び出される可能性があります。
args...
内のすべての引数は、オブジェクト型の場合に作成された
inout_ptr_t
にムーブされ、参照型の場合にはそのまま作成された
inout_ptr_t
に転送されます。
inout_ptr_t
のコンストラクタは例外を送出することが許可されています。例えば、
sp
が制御ブロックを持つ侵入型ポインタの場合、新しい制御ブロックの割り当てはデストラクタではなくコンストラクタ内で実行される可能性があります。
例
|
このセクションは不完全です
理由: 例がありません |