std::experi...ct_result_of(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

std::experimental::ranges::indirect_result_of β€” that's the name, and also std::experimental::ranges::indirect_result_of again, because the manpage said it twice and we are not skipping anything. This page is from the C++ Standard Libary manual, bestie.

✨ Synopsis ✨

Okay so this one is defined in the header <experimental/ranges/iterator>, and the whole thing looks exactly like this:

          Defined in header <experimental/ranges/iterator>
          template< class > struct indirect_result_of {};

          template< class F, class... Is >
              requires Invocable<F, ranges::reference_t<Is>...>      (ranges
       TS)
          struct indirect_result_of<F(Is...)>

              : std::result_of<F(ranges::reference_t<Is>&&...)> {};

Let's break it down, no cap: there's a primary template template< class > struct indirect_result_of {}; β€” yes, empty. Then there's the ranges TS specialization for F(Is...), and it has a requires clause: Invocable<F, ranges::reference_t<Is>...>. That specialization inherits from std::result_of<F(ranges::reference_t<Is>&&...)>. That's the whole vibe. Periodt.


byeeee πŸ’– this was sourced from cppreference.com, dated 2024.06.10, and the footer title is std::experi...ct_result_of(3) β€” mwah πŸ’‹

πŸ“¦ where this page comes from