template <class F>
concept bool IndirectInvocable() {
return ranges::Invocable<F>();
} |
(1) |
(ranges TS) |
template <class F, class I>
concept bool IndirectInvocable() {
return ranges::Readable<I>()
&& ranges::Invocable<F, ranges::value_type_t<I>>()
&& ranges::Invocable<F, ranges::reference_t<I>>()
&& ranges::Invocable<F, ranges::iter_common_reference_t<I>>();
} |
(2) |
(ranges TS) |
template <class F, class I1, class I2>
concept bool IndirectInvocable() {
return ranges::Readable<I1>() && ranges::Readable<I2>()
&& ranges::Invocable<F, ranges::value_type_t<I1>, ranges::value_type_t<I2>>()
&& ranges::Invocable<F, ranges::value_type_t<I1>, ranges::reference_t<I2>>()
&& ranges::Invocable<F, ranges::reference_t<I1>, ranges::value_type_t<I2>>()
&& ranges::Invocable<F, ranges::reference_t<I1>, ranges::reference_t<I2>>()
&& ranges::Invocable<F, ranges::iter_common_reference_t<I1>,
ranges::iter_common_reference_t<I2>>();
} |
(3) |
(ranges TS) |
template <class F>
concept bool IndirectRegularInvocable() {
return ranges::RegularInvocable<F>();
} |
(4) |
(ranges TS) |
template <class F, class I>
concept bool IndirectRegularInvocable() {
return ranges::Readable<I>()
&& ranges::RegularInvocable<F, ranges::value_type_t<I>>()
&& ranges::RegularInvocable<F, ranges::reference_t<I>>()
&& ranges::RegularInvocable<F, ranges::iter_common_reference_t<I>>();
} |
(5) |
(ranges TS) |
template <class F, class I1, class I2>
concept bool IndirectRegularInvocable() {
return ranges::Readable<I1>() && ranges::Readable<I2>()
&& ranges::RegularInvocable<F, ranges::value_type_t<I1>, ranges::value_type_t<I2>>()
&& ranges::RegularInvocable<F, ranges::value_type_t<I1>, ranges::reference_t<I2>>()
&& ranges::RegularInvocable<F, ranges::reference_t<I1>, ranges::value_type_t<I2>>()
&& ranges::RegularInvocable<F, ranges::reference_t<I1>, ranges::reference_t<I2>>()
&& ranges::RegularInvocable<F, ranges::iter_common_reference_t<I1>,
ranges::iter_common_reference_t<I2>>();
} |
(6) |
(ranges TS) |
| | |