5 #ifndef VCCC_ITERATOR_INDIRECTLY_READABLE_HPP_
6 #define VCCC_ITERATOR_INDIRECTLY_READABLE_HPP_
24 struct indirectly_readable_impl : std::false_type {};
27 struct indirectly_readable_impl<In, true>
29 common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&>,
30 common_reference_with<iter_reference_t<In>&&, iter_rvalue_reference_t<In>&&>,
31 common_reference_with<iter_rvalue_reference_t<In>&&, const iter_value_t<In>&>
37 dereferenceable<const In>,
38 has_typename_type<iter_value<In>>,
39 has_typename_type<iter_reference<In>>,
40 has_typename_type<iter_rvalue_reference<In>>
43 struct indirectly_readable_requires : std::false_type {};
46 struct indirectly_readable_requires<In, true>
48 same_as<decltype(*std::declval<const In&>()), iter_reference_t<In>>,
49 same_as<decltype(ranges::iter_move(std::declval<const In&>())), iter_rvalue_reference_t<In>>,
50 indirectly_readable_impl<In>
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: indirectly_readable.hpp:59