Метод System::SmartPtr::Cast

SmartPtr::Cast() const method

Преобразует указатель к его собственному типу.

template<class Y,typename Check> std::enable_if_t<std::is_same<Y, T>::value, SmartPtr<Y>> System::SmartPtr<T>::Cast() const
ПараметрОписание
YЦелевой тип указываемого объекта.
ПроверкаФлаги для выброса исключения, если приведение недоступно.

ReturnValue

Указатель изменённого типа, который всегда находится в режиме shared.

См. также

SmartPtr::Cast() const method

Преобразует указатель к базовому типу с помощью static_cast.

template<class Y,typename Check> std::enable_if_t<!std::is_same<Y, T>::value &&std::is_base_of<Y, T>::value, SmartPtr<Y>> System::SmartPtr<T>::Cast() const
ПараметрОписание
YЦелевой тип указываемого объекта.
ПроверкаФлаги для выброса исключения, если приведение недоступно.

ReturnValue

Указатель изменённого типа, который всегда находится в режиме shared.

См. также

SmartPtr::Cast() const method

Преобразует указатель к производному типу с помощью dynamic_cast.

template<class Y,typename Check> std::enable_if_t<Check::value &&!std::is_same<Y, T>::value &&!std::is_base_of<Y, T>::value, SmartPtr<Y>> System::SmartPtr<T>::Cast() const
ПараметрОписание
YЦелевой тип указываемого объекта.
ПроверкаФлаги для выброса исключения, если приведение недоступно.

ReturnValue

Указатель изменённого типа, который всегда находится в режиме совместного доступа. Выбрасывает InvalidCastException, если преобразование недоступно.

См. также

SmartPtr::Cast() const method

Преобразует указатель к производному типу с помощью dynamic_cast.

template<class Y,typename Check> std::enable_if_t<!Check::value &&!std::is_same<Y, T>::value &&!std::is_base_of<Y, T>::value, SmartPtr<Y>> System::SmartPtr<T>::Cast() const
ПараметрОписание
YЦелевой тип указываемого объекта.
ПроверкаФлаги для выброса исключения, если приведение недоступно.

ReturnValue

Указатель изменённого типа, который всегда находится в режиме совместного доступа. Возвращает nullptr, если преобразование недоступно.

См. также