您的位置:首页 > 其它

std::static_pointer_cast, std::dynamic_pointer_cast, std::const_pointer_cast

2014-07-05 21:07 489 查看

std::static_pointer_cast,
std::dynamic_pointer_cast,
std::const_pointer_cast

C++

Utilities library

Dynamic memory management

std::shared_ptr

template<
class T, class U
>

shared_ptr<T> static_pointer_cast(
const shared_ptr<U>& r
);
(1)(since C++11)
template<
class T, class U
>

shared_ptr<T> dynamic_pointer_cast(
const shared_ptr<U>& r
);
(2)(since C++11)
template<
class T, class U
>

shared_ptr<T> const_pointer_cast(
const shared_ptr<U>& r
);
(3)(since C++11)
Creates a new instance of std::shared_ptr whose managed object type is obtained from the
r
's managed object type using a cast expression. Both smart pointers will share the ownership of the managed object.

The resulting std::shared_ptr's managed object will be obtained by calling (in respective order):

1)
static_cast<T*>(r.get())
.
2)
dynamic_cast<T*>(r.get())
(If the result of the
dynamic_cast
is 0, the returned shared_ptr will be empty).
3)
const_cast<T*>(r.get())
.
In any case, if the parameter
r
is an empty std::shared_ptr the result will be a new empty
std::shared_ptr.

Parameters

r-The pointer to convert

Exceptions

noexcept specification:
noexcept
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: