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
도 비어 있습니다(그러나 저장된 포인터가 반드시 null인 것은 아닙니다).
그렇지 않으면, 새로운
shared_ptr
은
r
와 소유권을 공유하지만,
dynamic_pointer_cast
에 의해 수행된
dynamic_cast
가 null 포인터를 반환하는 경우에는 비어 있게 됩니다.
Y
가
typename
std::
experimental
::
shared_ptr
<
T
>
::
element_type
라고 할 때, 결과로 생성되는
std::experimental::shared_ptr
의 저장된 포인터는 다음 순서대로 호출하여 얻어집니다:
dynamic_cast
의 결과가 null 포인터 값인 경우, 반환된
shared_ptr
은 비어 있게 됩니다).
이러한 함수들의 동작은
U*
에서
T*
로의 해당 캐스트가 올바르게 형성되지 않는 경우 정의되지 않습니다:
매개변수
| r | - | 변환할 포인터 |
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
새로운
shared_ptr
을 생성함
(public member function) |
|
|
저장된 포인터에
static_cast
,
dynamic_cast
,
const_cast
, 또는
reinterpret_cast
를 적용함
(function template) |