6#ifndef TTG_META_CALLABLE_H
7#define TTG_META_CALLABLE_H
12#ifdef TTG_USE_BUNDLED_BOOST_CALLABLE_TRAITS
25 template <
typename Callable,
typename =
void>
28 template <
typename Callable>
32 template <
typename Callable>
44 template <
typename Callable,
typename Enabler =
void>
47 template <
typename Callable>
49 std::pair<bool, std::pair<ttg::typelist<boost::callable_traits::return_type_t<Callable>>,
61 template <std::
size_t N>
63 std::array<std::size_t, N>
idx = {};
64 for (
size_t d = 0;
d <
N; ++
d) {
86 std::index_sequence<ArgIdx...>
arg_idx = {}) {
88 constexpr auto Order =
sizeof...(Typelists);
89 constexpr std::array<std::size_t, Order>
extents = {
90 std::tuple_size_v<std::tuple_element_t<ArgIdx, arg_typelists_t>>...};
124 std::index_sequence<ArgIdx...>
arg_idx = {}) {
126 constexpr auto Order =
sizeof...(Typelists);
127 constexpr std::array<std::size_t, Order>
extents = {
128 std::tuple_size_v<std::tuple_element_t<ArgIdx, arg_typelists_t>>...};
160 std::make_index_sequence<
sizeof...(
Typelists)>{});
181 std::make_index_sequence<
sizeof...(
Typelists)>{});
189 template <
typename T,
typename =
void>
192 template <
typename T>
221 template <
typename T>
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
top-level TTG namespace contains runtime-neutral functionality