std::experi...yInvocable,(3)

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

πŸ’… std::experi...yInvocable,(3) πŸŽ€

okay so bestie, quick heads up: this page lives in the C++ Standard Library manual (that's the manual name, iykyk), and the title you're seeing is literally the truncated std::experi...yInvocable,(3) version β€” the vibes are giving "the manpage system ran out of room" but we move πŸ’€. It's a (3) page, so it's library-level stuff, and it's about two experimental ranges concepts. Let's get into it ✨


🌸 NAME 🌸

std::experimental::ranges::IndirectUnaryInvocable, β€” std::experimental::ranges::IndirectUnaryInvocable,

(no cap, that's exactly what it says β€” the name is listed twice with a little dash in the middle. iconic behavior, we don't question it 🫢)


✨ Synopsis ✨

Defined in header <experimental/ranges/iterator> πŸ¦‹

template< class F, class I >

concept bool IndirectUnaryInvocable =
    Readable<I> && CopyConstructible<F> &&
    Invocable<F&, ranges::value_type_t<I>&> &&
    Invocable<F&, ranges::reference_t<I>> &&
(ranges TS)
    Invocable<F&, ranges::iter_common_reference_t<I>> &&
    CommonReference<
        std::result_of_t<F&(ranges::value_type_t<I>&)>,

        std::result_of_t<F&(ranges::reference_t<I>&&)>>;
template< class F, class I >

concept bool IndirectRegularUnaryInvocable =
    Readable<I> && CopyConstructible<F> &&
    RegularInvocable<F&, ranges::value_type_t<I>&> &&
    RegularInvocable<F&, ranges::reference_t<I>> &&
(ranges TS)
    RegularInvocable<F&, ranges::iter_common_reference_t<I>> &&
    CommonReference<
        std::result_of_t<F&(ranges::value_type_t<I>&)>,

        std::result_of_t<F&(ranges::reference_t<I>&&)>>;

so yeah πŸ’– β€” two concept bools, both taking class F and class I, both built out of Readable<I>, CopyConstructible<F>, then a whole stack of Invocable / RegularInvocable requirements over ranges::value_type_t<I>&, ranges::reference_t<I>, and ranges::iter_common_reference_t<I>, wrapped up with a CommonReference<...> over the matching std::result_of_t results. The (ranges TS) tag marks the ranges Technical Specification bits, and yes, there's a blank line chilling inside each CommonReference<...> β€” we keep it, we don't touch it πŸ™ˆ

This section is incomplete 😭 Reason: add description and extra caveats

(that's a direct quote from the page β€” the docs girlies left the description and extra caveats as a todo. We're not inventing them, we're just respecting the WIP energy πŸ’€)


Category

  • Todo with reason

and that's the whole page, bestie β€” short, experimental, and full of template constraints πŸ”₯

🌈 cute little sign-off: this was served up from http://cppreference.com, dated 2024.06.10 πŸŽ€ go off, ranges TS, you absolute icon πŸ‘‘

πŸ“¦ where this page comes from