hpx/execution/traits/executor_traits.hpp

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

namespace hpx
namespace parallel
namespace execution

Typedefs

template<typename Executor, typename T, typename ...Ts>
using executor_future_t = typename executor_future<Executor, T, Ts...>::type
template<typename Executor>
struct executor_context

Public Types

template<>
using type = std::decay_t<decltype(std::declval<Executor const&>().context())>
template<typename Executor>
struct executor_execution_category

Public Types

template<>
using type = hpx::util::detected_or_t<hpx::execution::unsequenced_execution_tag, execution_category, Executor>

Private Types

template<typename T>
using execution_category = typename T::execution_category
template<typename Executor>
struct executor_index

Public Types

template<>
using type = hpx::util::detected_or_t<typename executor_shape<Executor>::type, index_type, Executor>

Private Types

template<typename T>
using index_type = typename T::index_type
template<typename Executor>
struct executor_parameters_type

Public Types

template<>
using type = hpx::util::detected_or_t<hpx::execution::static_chunk_size, parameters_type, Executor>

Private Types

template<typename T>
using parameters_type = typename T::parameters_type
template<typename Executor>
struct executor_shape

Public Types

template<>
using type = hpx::util::detected_or_t<std::size_t, shape_type, Executor>

Private Types

template<typename T>
using shape_type = typename T::shape_type
namespace traits

Typedefs

template<typename Executor>
using executor_context_t = typename executor_context<Executor>::type
template<typename Executor>
using executor_execution_category_t = typename executor_execution_category<Executor>::type
template<typename Executor>
using executor_shape_t = typename executor_shape<Executor>::type
template<typename Executor>
using executor_index_t = typename executor_index<Executor>::type
template<typename Executor, typename T, typename ...Ts>
using executor_future_t = typename executor_future<Executor, T, Ts...>::type
template<typename Executor>
using executor_parameters_type_t = typename executor_parameters_type<Executor>::type

Variables

template<typename T>
constexpr bool has_post_member_v = has_post_member<T>::value
template<typename T>
constexpr bool has_sync_execute_member_v = has_sync_execute_member<T>::value
template<typename T>
constexpr bool has_async_execute_member_v = has_async_execute_member<T>::value
template<typename T>
constexpr bool has_then_execute_member_v = has_then_execute_member<T>::value
template<typename T>
constexpr bool has_bulk_sync_execute_member_v = has_bulk_sync_execute_member<T>::value
template<typename T>
constexpr bool has_bulk_async_execute_member_v = has_bulk_async_execute_member<T>::value
template<typename T>
constexpr bool has_bulk_then_execute_member_v = has_bulk_then_execute_member<T>::value