typename detail::deduce_output_type< detail::type_list<Sigs...>, detail::type_list< typename detail::implicit_conversions< typename std::decay<Ts>::type >::type... > >::delegated_type delegate(message_priority mp, const typed_actor<Sigs...>& dest, Ts&&... xs) { static_assert(sizeof...(Ts) > 0, "no message to send"); using token = detail::type_list< typename detail::implicit_conversions< typename std::decay<Ts>::type >::type...>; token tk; check_typed_input(dest, tk); if (! dest) return {}; auto mid = current_element_->mid; current_element_->mid = mp == message_priority::high ? mid.with_high_priority() : mid.with_normal_priority(); current_element_->msg = make_message(std::forward<Ts>(xs)...); dest->enqueue(std::move(current_element_), host()); return {}; }
inline void monitor(const typed_actor<Ts...>& whom) { monitor(whom.address()); }
void send_exit(const typed_actor<Rs...>& whom, uint32_t reason) { send_exit(whom.address(), reason); }