dynamic_pointer_cast
Перейти к навигации
Перейти к поиску
template <class ITo, class IFrom>
shared_interface_ptr<ITo> dynamic_pointer_cast(const shared_interface_ptr<IFrom>& frm) noexcept;
Преобразует смарт-указатель shared_interface_ptr на интерфейс с разделением владения и с преобразованием ассоциированного интерфейсного указателя через dynamic_cast.
- Параметры шаблона
ITo Тип интерфейса, в который осуществляется преобразование. IFrom Тип интерфейса, из которого осуществляется преобразование. - Параметры
frm Преобразуемый объект. - Возвращаемое значение:
- Результат преобразования.
- См. также
std::dynamic_pointer_cast Аналогичная функция для std::shared_ptr. static_pointer_cast Преобразует смарт-указатель shared_interface_ptr на интерфейс с разделением владения и с преобразованием ассоциированного интерфейсного указателя через static_cast. const_pointer_cast Преобразует смарт-указатель shared_interface_ptr на интерфейс с разделением владения и с преобразованием ассоциированного интерфейсного указателя через const_cast. reinterpret_pointer_cast Преобразует смарт-указатель shared_interface_ptr на интерфейс с разделением владения и с преобразованием ассоциированного интерфейсного указателя через reinterpret_cast.
Операция атомарна.
Пример
auto pI1 = shared_interface_ptr<INode>(InvokeInterfaceGetter(&DemarshalNode, pDomainName, cchDomainName, std::uint32_t(nFormat), is.get_interface(), control.get_interface()));
auto pI2 = static_pointer_cast<ITCPNode>(pI1);
auto pI3 = dynamic_pointer_cast<ITCPNodeCustomRequestHandler>(pI2);