25 return std::unique_ptr<T_DEST, T_DELETER>(
nullptr);
27 T_DEST * dest_ptr =
dynamic_cast<T_DEST *
>(src.get());
29 return std::unique_ptr<T_DEST, T_DELETER>(
nullptr);
31 std::unique_ptr<T_DEST, T_DELETER> dest_temp(dest_ptr, std::move(src.get_deleter()));
43 return std::unique_ptr<T_DEST, T_DELETER>(
nullptr);
45 T_DEST * dest_ptr =
dynamic_cast<T_DEST *
>(src.get());
47 return std::unique_ptr<T_DEST, T_DELETER>(
nullptr);
49 std::unique_ptr<T_DEST, T_DELETER> dest_temp(dest_ptr, std::move(src.get_deleter()));
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.