39 template<
typename T,
typename U>
41 T down_cast(
U* u)
noexcept
43 SPOT_ASSERT(
dynamic_cast<T
>(u));
44 return static_cast<T
>(u);
47 template<
typename T,
typename U>
49 T down_cast(
const std::shared_ptr<U>& u)
noexcept
51 SPOT_ASSERT(std::dynamic_pointer_cast<typename T::element_type>(u));
52 return std::static_pointer_cast<typename T::element_type>(u);
55 template<
typename T,
typename U>
63 return static_cast<T
>(u);
65 return dynamic_cast<T
>(u);
Definition automata.hh:27