YOrch 1.0.0
Loading...
Searching...
No Matches
member_receiver.hpp File Reference
#include <functional>
#include <type_traits>
#include <utility>
#include "../../resolve.hpp"
#include "traits.hpp"
Include dependency graph for member_receiver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  yorch::detail::borrowed_member_receiver< T >
 
struct  yorch::detail::copied_member_receiver< T >
 
struct  yorch::detail::consumed_member_receiver< T >
 

Namespaces

namespace  yorch
 
namespace  yorch::detail
 

Functions

template<typename T >
constexpr decltype(autoyorch::detail::forward_member_receiver (const borrowed_member_receiver< T > &holder) noexcept
 
template<typename T >
constexpr decltype(autoyorch::detail::forward_member_receiver (copied_member_receiver< T > &holder) noexcept
 
template<typename T >
constexpr decltype(autoyorch::detail::forward_member_receiver (copied_member_receiver< T > &&holder) noexcept
 Keep this rvalue overload so invoke_member_with_receiver(...) can accept a forwarded temporary copied_member_receiver<T>.
 
template<typename T >
constexpr decltype(autoyorch::detail::forward_member_receiver (consumed_member_receiver< T > &holder) noexcept
 
template<typename T >
constexpr decltype(autoyorch::detail::forward_member_receiver (consumed_member_receiver< T > &&holder) noexcept
 
template<typename F , typename Receiver , typename... Args>
constexpr decltype(autoyorch::detail::invoke_member_with_receiver (F &&func, Receiver &&receiver, Args &&... args) noexcept(noexcept(std::invoke(std::forward< F >(func), forward_member_receiver(std::forward< Receiver >(receiver)), std::forward< Args >(args)...)))
 
template<typename F , typename T , typename Ctx , typename Prev >
constexpr auto yorch::detail::resolve_member_receiver (copy_prev_t< T > spec, exec_context< Ctx, Prev > &ec) noexcept(noexcept(resolve_as< member_class_t< F > >(spec, ec)))
 
template<typename F , typename T , typename Ctx , typename Prev >
constexpr auto yorch::detail::resolve_member_receiver (consume_prev_t< T > spec, exec_context< Ctx, Prev > &ec) noexcept(noexcept(resolve_as< member_class_t< F > >(spec, ec)))
 
template<typename F , typename Spec , typename Ctx , typename Prev >
constexpr auto yorch::detail::resolve_member_receiver (Spec &spec, exec_context< Ctx, Prev > &ec) noexcept(noexcept(resolve_as< member_receiver_arg_t< F > >(spec, ec)))
 
template<typename Self , typename T >
constexpr decltype(autoyorch::detail::forward_member (T &value) noexcept