YOrch 1.0.0
Loading...
Searching...
No Matches
traits.hpp File Reference
#include <concepts>
#include <cstddef>
#include <tuple>
#include <type_traits>
#include "../../slots/direct_out.hpp"
Include dependency graph for traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  yorch::detail::function_traits< R(Args...)>
 Core traits specialization for a plain function type. More...
 
struct  yorch::detail::function_traits< R(*)(Args...)>
 
struct  yorch::detail::function_traits< R(*)(Args...) noexcept >
 
struct  yorch::detail::function_traits< R(&)(Args...)>
 
struct  yorch::detail::function_traits< R(&)(Args...) noexcept >
 
struct  yorch::detail::function_traits< R(C::*)(Args...)>
 
struct  yorch::detail::function_traits< R(C::*)(Args...) noexcept >
 
struct  yorch::detail::function_traits< R(C::*)(Args...) const >
 
struct  yorch::detail::function_traits< R(C::*)(Args...) const noexcept >
 
struct  yorch::detail::function_traits< F, std::void_t< decltype(&std::remove_reference_t< F >::operator())> >
 
struct  yorch::detail::is_member_function_pointer_callable< T >
 
struct  yorch::detail::member_function_traits< R(C::*)(Args...)>
 
struct  yorch::detail::member_function_traits< R(C::*)(Args...) noexcept >
 
struct  yorch::detail::member_function_traits< R(C::*)(Args...) const >
 
struct  yorch::detail::member_function_traits< R(C::*)(Args...) const noexcept >
 
struct  yorch::detail::direct_out_arg< T >
 
struct  yorch::detail::direct_out_arg< direct_out< T > >
 
struct  yorch::detail::direct_out_payload< direct_out< T >, void >
 

Namespaces

namespace  yorch
 
namespace  yorch::detail
 

Concepts

concept  yorch::detail::direct_out_arg_like
 
concept  yorch::detail::bind_callable
 
concept  yorch::detail::member_bind_callable
 
concept  yorch::detail::inferable_direct_output_callable
 
concept  yorch::detail::ordinary_bind_callable
 
concept  yorch::detail::inferable_forward_prev_callable
 
concept  yorch::detail::inferable_direct_output_member_callable
 
concept  yorch::detail::ordinary_member_bind_callable
 
concept  yorch::detail::bind_signature_matches
 
concept  yorch::detail::member_receiver_bindable
 
concept  yorch::detail::member_bound_signature_matches
 
concept  yorch::detail::bind_into_signature_matches
 
concept  yorch::detail::member_bound_into_signature_matches
 
concept  yorch::detail::inferred_bind_into_signature_matches
 
concept  yorch::detail::inferred_forward_prev_signature_matches
 
concept  yorch::detail::inferred_member_bound_into_signature_matches
 

Typedefs

template<std::size_t I, typename F >
using yorch::detail::nth_arg_t = typename function_traits< std::remove_cvref_t< F > >::template arg< I >
 
template<typename F >
using yorch::detail::result_t = typename function_traits< std::remove_cvref_t< F > >::result_type
 
template<typename F >
using yorch::detail::member_result_t = typename member_function_traits< std::remove_cvref_t< F > >::result_type
 
template<typename F >
using yorch::detail::member_class_t = typename member_function_traits< std::remove_cvref_t< F > >::class_type
 
template<typename F >
using yorch::detail::member_receiver_arg_t = typename member_function_traits< std::remove_cvref_t< F > >::receiver_arg_type
 
template<typename F >
using yorch::detail::member_borrowed_receiver_t = std::remove_reference_t< member_receiver_arg_t< F > >
 
template<std::size_t I, typename F >
using yorch::detail::member_nth_arg_t = typename member_function_traits< std::remove_cvref_t< F > >::template arg< I >
 
template<typename F >
using yorch::detail::last_arg_t = nth_arg_t< last_arg_index_v< F >, F >
 
template<typename F >
using yorch::detail::member_last_arg_t = member_nth_arg_t< member_last_arg_index_v< F >, F >
 
template<typename T >
using yorch::detail::direct_out_payload_t = typename direct_out_payload< T >::type
 

Variables

template<typename T >
constexpr bool yorch::detail::is_member_function_pointer_callable_v
 
template<typename F >
constexpr std::size_t yorch::detail::last_arg_index_v
 
template<typename F >
constexpr std::size_t yorch::detail::member_last_arg_index_v
 
template<typename T >
constexpr bool yorch::detail::direct_out_arg_v