std::experimental:: static_pointer_cast, std::experimental:: dynamic_pointer_cast, std::experimental:: const_pointer_cast, std::experimental:: reinterpret_pointer_cast
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(1) | (ライブラリ基盤仕様TS) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(2) | (ライブラリ基盤仕様TS) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(3) | (ライブラリ基盤仕様TS) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(4) | (ライブラリ基盤仕様TS) |
r
の格納されたポインタからキャスト式を用いて取得した格納ポインタを持つ、新しい
std::experimental::shared_ptr
インスタンスを作成します。
r
が空の場合、新しい
shared_ptr
も空になります(ただし、その格納ポインタは必ずしもヌルとは限りません)。
そうでなければ、新しい
shared_ptr
は
r
と所有権を共有します。ただし、
dynamic_pointer_cast
によって実行される
dynamic_cast
がヌルポインタを返した場合、新しい shared_ptr は空になります。
Y
を
typename
std::
experimental
::
shared_ptr
<
T
>
::
element_type
とすると、結果の
std::experimental::shared_ptr
の格納されたポインタは(それぞれの順序で)呼び出しによって取得されます:
dynamic_cast
の結果がヌルポインタ値の場合、返される
shared_ptr
は空になります)。
これらの関数の動作は、
U*
から
T*
への対応するキャストが適切に形成されない限り未定義です:
パラメータ
| r | - | 変換するポインタ |
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
新しい
shared_ptr
を構築する
(public member function) |
|
|
格納されたポインタに
static_cast
,
dynamic_cast
,
const_cast
, または
reinterpret_cast
を適用する
(function template) |