typename boost::disable_if< traits::is_future<typename util::result_of<Func(Future)>::type> >::type invoke_continuation(Func& func, Future& future, Continuation& cont) { typedef typename boost::is_void< typename util::result_of<Func(Future)>::type >::type is_void; invoke_continuation(func, future, cont, is_void()); }
typename std::enable_if< !traits::detail::is_unique_future< typename util::invoke_result<Func, Future>::type >::value >::type invoke_continuation(Func& func, Future && future, Continuation& cont) { typedef std::is_void< typename util::invoke_result<Func, Future>::type > is_void; hpx::util::annotate_function annotate(func); invoke_continuation(func, std::forward<Future>(future), cont, is_void()); }