515 template <
typename... Args>
516 auto operator()(Args&&... args)
const ->
decltype(internal::InvokeArgument(
517 std::get<index>(std::forward_as_tuple(std::forward<Args>(args)...)),
518 std::declval<const Params&>()...)) {
520 std::forward<Args>(args)...);
521 return params.Apply([&](
const Params&... unpacked_params) {
522 auto&& callable = args_tuple.template Get<index>();
523 return internal::InvokeArgument(
524 std::forward<
decltype(callable)>(callable), unpacked_params...);