29template <
typename Task,
typename =
void>
32template <
typename Task>
35 std::
void_t<typename std::remove_cvref_t<Task>::output_type>
37 using type =
typename std::remove_cvref_t<Task>::output_type;
40template <
typename Task>
43template <
typename Task,
typename =
void>
46template <
typename Task>
49 std::
void_t<declared_task_output_t<Task>>
52template <
typename Task>
56template <
typename Task,
typename =
void>
61template <
typename Task>
64 std::
void_t<typename std::remove_cvref_t<Task>::output_protocol>
66 using type =
typename std::remove_cvref_t<Task>::output_protocol;
69template <
typename Task>
73template <
typename Task>
79template <
typename Task>
85template <
typename Task,
typename =
void>
88template <
typename Task>
91 std::
void_t<declared_task_output_t<Task>>
96template <
typename Task,
typename =
void>
99template <
typename Task>
102 std::
void_t<typename std::remove_cvref_t<Task>::output_protocol>
constexpr bool task_uses_direct_output_protocol_v
typename declared_task_output< Task >::type declared_task_output_t
constexpr bool task_uses_forward_prev_output_protocol_v
typename declared_task_output_protocol< Task >::type declared_task_output_protocol_t
constexpr bool is_adapter_descriptor_v
constexpr bool has_declared_task_output_v
typename std::remove_cvref_t< Task >::output_type type
typename std::remove_cvref_t< Task >::output_protocol type
Detects a task's declared logical output type.
declared_task_output_t< Task > output_type
declared_task_output_protocol_t< Task > output_protocol