callable.h
Go to the documentation of this file.
22 // handled using Boost.CallableTraits ... to detect whether a callable is generic or not detect existence of
28 struct is_generic_callable<Callable, ttg::meta::void_t<boost::callable_traits::args_t<Callable, ttg::typelist>>>
44 constexpr std::pair<bool, std::pair<ttg::typelist<>, ttg::typelist<>>> callable_args = {true, {}};
47 constexpr auto callable_args<Callable, ttg::meta::void_t<boost::callable_traits::args_t<Callable, ttg::typelist>>> =
96 auto args = typelist<std::tuple_element_t<idx[ArgIdx], std::tuple_element_t<ArgIdx, arg_typelists_t>>...>{};
121 template <std::size_t Ordinal, typename ReturnType, typename Func, typename... Typelists, std::size_t... ArgIdx>
134 auto args = typelist<std::tuple_element_t<idx[ArgIdx], std::tuple_element_t<ArgIdx, arg_typelists_t>>...>{};
138 return compute_arg_binding_types_r_impl<Ordinal + 1, ReturnType>(func, argument_type_lists, arg_idx);
192 struct candidate_argument_bindings<T, std::enable_if_t<!std::is_reference_v<T> && !std::is_void_v<T>>> {
typename make_index_sequence_t< I... >::type make_index_sequence
Definition: make_index_sequence.hpp:46
detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument > args_t
Definition: args.hpp:29
Definition: terminal.h:129
auto compute_arg_binding_types_r(Func &func, typelist< Typelists... > argument_type_lists)
Definition: callable.h:175
auto compute_arg_binding_types_impl(Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
Definition: callable.h:84
auto compute_arg_binding_types(Func &func, typelist< Typelists... > argument_type_lists)
Definition: callable.h:154
constexpr std::pair< bool, std::pair< ttg::typelist<>, ttg::typelist<> > > callable_args
Definition: callable.h:44
constexpr auto ordinal2index(std::size_t ordinal, std::array< std::size_t, N > extents)
Definition: callable.h:61
auto compute_arg_binding_types_r_impl(Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
Definition: callable.h:122
typename candidate_argument_bindings< T >::type candidate_argument_bindings_t
Definition: callable.h:221
std::conditional_t< std::is_const_v< T >, typelist< const T & >, typelist< T &&, const T & > > type
Definition: callable.h:207
Definition: callable.h:25