Пространства имён
Варианты
Действия

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

Материал из cppreference.com
< cpp‎ | memory‎ | shared ptr

 
 
 
 
 
template< class T, class U >
shared_ptr<T> static_pointer_cast( const shared_ptr<U>& r );
(1) (начиная с C++11)
template< class T, class U >
shared_ptr<T> dynamic_pointer_cast( const shared_ptr<U>& r );
(2) (начиная с C++11)
template< class T, class U >
shared_ptr<T> const_pointer_cast( const shared_ptr<U>& r );
(3) (начиная с C++11)
Вернется новый экземпляр std::shared_ptr с литыми управляемого объекта типа из управляемого типа объекта r автора. Оба умные указатели поделятся собственности на управляемый объект.
Оригинал:
Will return a new instance of std::shared_ptr with a casted managed object type from the r's managed object type. Both smart pointers will share the ownership of the managed object.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Управляемого объекта в результате std::shared_ptr будет получить по телефону (в соответствующем порядке):
Оригинал:
The resulting std::shared_ptr's managed object will be obtained by calling (in respective order):
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
1) static_cast<T*>(r.get()).
2)
dynamic_cast<T*>(r.get()) (Если результат dynamic_cast равно 0, возвращается shared_ptr будет пустым).
Оригинал:
dynamic_cast<T*>(r.get()) (If the result of the dynamic_cast is 0, the returned shared_ptr will be empty).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3) const_cast<T*>(r.get()).
В любом случае, если параметр r является пустой std::shared_ptr результат будет новый пустой std::shared_ptr.
Оригинал:
In any case, if the parameter r is an empty std::shared_ptr the result will be a new empty std::shared_ptr.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Параметры

r -
Указатель для преобразования
Оригинал:
The pointer to convert
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Исключения

noexcept-спецификация:  
noexcept
  (начиная с C++11)