hpx/execution_base/completion_signatures.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace execution
namespace experimental

Typedefs

template<typename ...Signatures>
using completion_signatures = meta::type<detail::generate_completion_signatures<meta::pack<Signatures...>>>
template<typename Env>
using dependent_completion_signatures = detail::dependent_completion_signatures<Env>
template<typename Sender, typename Env = no_env>
using completion_signatures_of_t = detail::completion_signatures_of<Sender, Env>
template<typename Sender, typename Env = no_env, template<typename...> typename Tuple = detail::decayed_tuple, template<typename...> typename Variant = detail::decayed_variant, typename = std::enable_if_t<is_sender_v<Sender, Env>>>
using value_types_of_t = detail::value_types_from<detail::completion_signatures_of<Sender, Env>, meta::func<Tuple>, meta::func<Variant>>
template<typename Sender, typename Env = no_env, template<typename...> typename Variant = detail::decayed_variant, typename = std::enable_if_t<is_sender_v<Sender, Env>>>
using error_types_of_t = detail::error_types_from<detail::completion_signatures_of<Sender, Env>, meta::func<Variant>>
template<typename Sender, typename Env = no_env, typename AddlSignatures = completion_signatures<>, template<typename...> typename SetValue = detail::set_value_signature, template<typename> typename SetError = detail::set_error_signature, bool SendsStopped = completion_signatures_of_t<Sender, Env>::sends_stopped, typename = std::enable_if_t<is_sender_v<Sender, Env>>>
using make_completion_signatures = meta::type<detail::make_helper<Sender, Env, AddlSignatures, meta::func<SetValue>, meta::func1<SetError>, SendsStopped>>

Variables

hpx::execution::experimental::get_completion_signatures_t get_completion_signatures
template<typename Sender, typename Env = empty_env>
constexpr bool is_sender_v = is_sender<Sender, Env>::value
template<typename Sender, typename Receiver>
constexpr bool is_sender_to_v = is_sender_to<Sender, Receiver>::value
template<typename Sender, typename Env = no_env, typename = std::enable_if_t<is_sender_v<Sender, Env>>>
constexpr bool sends_stopped_of_v = meta::value<detail::sends_stopped_from<detail::completion_signatures_of<Sender, Env>>>
struct empty_variant

Public Functions

empty_variant()
struct get_completion_signatures_t : public hpx::functional::detail::tag_fallback<get_completion_signatures_t>

Friends

template<typename Sender, typename Env = no_env>
friend constexpr auto tag_fallback_invoke(get_completion_signatures_t, Sender&&, Env const& = {})