std::out_ptr_t<Smart,Pointer,Args...>:: out_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
out_ptr_t::out_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
out_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (C++23以降) |
|
out_ptr_t
(
const
out_ptr_t
&
)
=
delete
;
|
(2) | (C++23以降) |
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 ( ) を呼び出す。両方のリセット操作が不適切な場合、プログラムは不適格となる。
out_ptr_t
はコピーもムーブもできません。
目次 |
パラメータ
| sp | - | アダプトするオブジェクト(通常はスマートポインタ) |
| args... | - | リセットに使用する引数をキャプチャする |
戻り値
(なし)
例外
実装定義の例外をスローする可能性があります。
注記
構築後、
Pointer
または
void
*
のいずれかの変換関数の戻り値が指すオブジェクトは
nullptr
と等しい。
args...
内のすべての引数は、オブジェクト型の場合に作成された
out_ptr_t
にムーブされ、参照型の場合にはそのまま作成された
out_ptr_t
に転送されます。
out_ptr_t
のコンストラクタは例外を送出することが許可されています。例えば、
sp
が
std::shared_ptr
の場合、新しい制御ブロックの割り当てはデストラクタではなくコンストラクタ内で実行される可能性があります。
例
|
このセクションは不完全です
理由: 例がありません |