5 #ifndef VCCC_ITERATOR_INDIRECT_UNARY_INVOCABLE_HPP
6 #define VCCC_ITERATOR_INDIRECT_UNARY_INVOCABLE_HPP
28 invocable<F&, iter_value_t<I>&>,
29 invocable<F&, iter_reference_t<I>>,
30 invocable<F&, iter_common_reference_t<I>>
33 struct indirectly_unary_invocable_impl_2
34 : common_reference_with<
35 invoke_result_t<F&, iter_value_t<I>&>,
36 invoke_result_t<F&, iter_reference_t<I>>
39 template<
typename F,
typename I>
40 struct indirectly_unary_invocable_impl_2<F, I, false> : std::false_type {};
46 indirectly_readable<I>,
47 copy_constructible<F>,
48 has_typename_type< iter_common_reference<I> >
51 struct indirectly_unary_invocable_impl_1 : indirectly_unary_invocable_impl_2<F, I> {};
53 template<
typename F,
typename I>
54 struct indirectly_unary_invocable_impl_1<F, I, false> : std::false_type {};
72 template<
typename F,
typename I>
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
specifies that a callable type can be invoked with the result of dereferencing an indirectly_readable...
Definition: indirectly_unary_invocable.hpp:73