5 #ifndef VCCC_ITERATOR_INDIRECT_REGULAR_UNARY_INVOCABLE_HPP
6 #define VCCC_ITERATOR_INDIRECT_REGULAR_UNARY_INVOCABLE_HPP
28 regular_invocable<F&, iter_value_t<I>&>,
29 regular_invocable<F&, iter_reference_t<I>>,
30 regular_invocable<F&, iter_common_reference_t<I>>
33 struct indirectly_regular_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_regular_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_regular_unary_invocable_impl_1 : indirectly_regular_unary_invocable_impl_2<F, I> {};
53 template<
typename F,
typename I>
54 struct indirectly_regular_unary_invocable_impl_1<F, I, false> : std::false_type {};
67 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_regular_unary_invocable.hpp:68