YOrch 1.0.0
Loading...
Searching...
No Matches
yorch::bound_member_output_task< F, ReceiverSpec, T, Specs > Struct Template Reference

Bound direct-output task composed of a member function, receiver spec, and non-output parameter specs. More...

#include <types.hpp>

Public Types

using raw_result_type = step_result
 
using output_type = T
 
using output_protocol = detail::direct_output_protocol_tag
 

Public Member Functions

template<typename Ctx , typename Prev >
constexpr step_result invoke_into (exec_context< Ctx, Prev > &ec, direct_out< T > out) noexcept(noexcept(call_impl_into(ec, out, std::index_sequence_for< Specs... > {})))
 

Public Attributes

func
 
ReceiverSpec receiver_spec
 
std::tuple< Specs... > specs
 

Detailed Description

template<typename F, typename ReceiverSpec, typename T, typename... Specs>
struct yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >

Bound direct-output task composed of a member function, receiver spec, and non-output parameter specs.

The receiver is resolved first, then all non-output business parameters are resolved in order, and finally the provided direct_out<T> sink is passed to the stored member function via std::invoke(...).

Template Parameters
FStored member-function pointer type.
ReceiverSpecStored receiver binding spec.
TOutput payload type.
SpecsStored non-output business-parameter specs.

Definition at line 255 of file types.hpp.

Member Typedef Documentation

◆ output_protocol

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
using yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::output_protocol = detail::direct_output_protocol_tag

Definition at line 258 of file types.hpp.

◆ output_type

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
using yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::output_type = T

Definition at line 257 of file types.hpp.

◆ raw_result_type

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
using yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::raw_result_type = step_result

Definition at line 256 of file types.hpp.

Member Function Documentation

◆ invoke_into()

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
template<typename Ctx , typename Prev >
constexpr step_result yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::invoke_into ( exec_context< Ctx, Prev > &  ec,
direct_out< T >  out 
)
inlineconstexprnoexcept

Definition at line 265 of file types.hpp.

Member Data Documentation

◆ func

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
F yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::func

Definition at line 260 of file types.hpp.

◆ receiver_spec

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
ReceiverSpec yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::receiver_spec

Definition at line 261 of file types.hpp.

◆ specs

template<typename F , typename ReceiverSpec , typename T , typename... Specs>
std::tuple<Specs...> yorch::bound_member_output_task< F, ReceiverSpec, T, Specs >::specs

Definition at line 262 of file types.hpp.


The documentation for this struct was generated from the following file: