std::indirect_result_t(3)

NAME
std::indirect_result_t - std::indirect_result_t

Synopsis
   Defined in header <iterator>
   template< class F, class... Is >
   requires (std::indirectly_readable<Is> && ...) &&
   std::invocable<F, std::iter_reference_t<Is>...> (since C++20)
   using indirect_result_t = std::invoke_result_t<F,
   std::iter_reference_t<Is>...>;
   The alias template indirect_result_t obtains the result type of invoking an
   invocable type F on the result of dereferencing indirectly_readable types Is....

Template parameters
   F - an invocable type
   Is - indirectly readable types that are dereferenced to arguments

See also
   result_of deduces the result type of invoking a callable object with
   invoke_result a set of arguments
   (C++11)(removed in C++20) (class template)
   (C++17)