38 template<
typename T,
typename U>
40 T down_cast(U* u)
noexcept
42 SPOT_ASSERT(
dynamic_cast<T
>(u));
43 return static_cast<T
>(u);
46 template<
typename T,
typename U>
48 T down_cast(
const std::shared_ptr<U>& u)
noexcept
50 SPOT_ASSERT(std::dynamic_pointer_cast<typename T::element_type>(u));
51 return std::static_pointer_cast<typename T::element_type>(u);
54 template<
typename T,
typename U>
62 return static_cast<T
>(u);
64 return dynamic_cast<T
>(u);
Definition: automata.hh:26