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) | (техническая спецификация библиотеки fundamentals) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(2) | (техническая спецификация библиотеки fundamentals) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(3) | (техническая спецификация библиотеки fundamentals) |
|
template
<
class
T,
class
U
>
std::
experimental
::
shared_ptr
<
T
>
|
(4) | (техническая спецификация библиотеки fundamentals) |
Создает новый экземпляр
std::experimental::shared_ptr
, чей сохраненный указатель получается из сохраненного указателя
r
с использованием выражения приведения типа. Если
r
пуст, новый
shared_ptr
также будет пустым (но его сохраненный указатель не обязательно будет нулевым).
В противном случае новый
shared_ptr
будет разделять владение с
r
, за исключением того, что он будет пустым, если
dynamic_cast
, выполняемый
dynamic_pointer_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
к сохраненному указателю
(шаблон функции) |