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) | (库基础技术规范) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(2) | (库基础技术规范) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(3) | (库基础技术规范) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(4) | (库基础技术规范) |
创建一个新的
std::experimental::shared_ptr
实例,其存储指针通过强制转换表达式从
r
的存储指针获取。如果
r
为空,则新的
shared_ptr
也为空(但其存储指针不一定为 null)。
否则,新的
shared_ptr
将与
r
共享所有权,除非
dynamic_pointer_cast
执行的
dynamic_cast
返回空指针,此时新指针将为空。
令
Y
为
typename
std::
experimental
::
shared_ptr
<
T
>
::
element_type
,则生成的
std::experimental::shared_ptr
的存储指针将通过按相应顺序调用以下方式获得:
dynamic_cast
的结果为空指针值,则返回的
shared_ptr
将为空)。
这些函数的行为是未定义的,除非从
U*
到
T*
的相应转换是良构的:
参数
| r | - | 要转换的指针 |
示例
|
本节内容不完整
原因:缺少示例 |
参见
构造新的
shared_ptr
(公开成员函数) |
|
|
对存储的指针应用
static_cast
、
dynamic_cast
、
const_cast
或
reinterpret_cast
(函数模板) |