4#ifndef TETL_ITERATOR_INDIRECTLY_READABLE_HPP
5#define TETL_ITERATOR_INDIRECTLY_READABLE_HPP
7#include <etl/_concepts/common_reference_with.hpp>
8#include <etl/_concepts/same_as.hpp>
9#include <etl/_iterator/iter_reference_t.hpp>
10#include <etl/_iterator/iter_rvalue_reference_t.hpp>
11#include <etl/_iterator/iter_value_t.hpp>
12#include <etl/_iterator/ranges_iter_move.hpp>
13#include <etl/_type_traits/remove_cvref.hpp>
19concept indirectly_readable_impl
20 =
etl::common_reference_with<
etl::iter_reference_t<In>&&,
etl::iter_value_t<In>&>
21 and etl::common_reference_with<
etl::iter_reference_t<In>&&,
etl::iter_rvalue_reference_t<In>&&>
22 and etl::common_reference_with<
etl::iter_rvalue_reference_t<In>&&,
etl::iter_value_t<In>
const&>
23 and requires(In
const in) {
24 typename etl::iter_value_t<In>;
25 typename etl::iter_reference_t<In>;
26 typename etl::iter_rvalue_reference_t<In>;
27 { *in } ->
etl::same_as<
etl::iter_reference_t<In
>>;
33concept indirectly_readable =
etl::detail::indirectly_readable_impl<
etl::remove_cvref_t<In>>;
constexpr auto iter_move
Definition ranges_iter_move.hpp:63
Definition ranges_in_fun_result.hpp:12
Definition adjacent_find.hpp:9