tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
legacy_input_iterator.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2024 Tobias Hienzsch
3
4#ifndef TETL_ITERATOR_LEGACY_INPUT_ITERATOR_HPP
5#define TETL_ITERATOR_LEGACY_INPUT_ITERATOR_HPP
6
7#include <etl/_concepts/equality_comparable.hpp>
8#include <etl/_concepts/signed_integral.hpp>
9#include <etl/_iterator/incrementable_traits.hpp>
10#include <etl/_iterator/indirectly_readable_traits.hpp>
11#include <etl/_iterator/iter_reference_t.hpp>
12#include <etl/_iterator/legacy_iterator.hpp>
13#include <etl/_type_traits/common_reference.hpp>
14
15namespace etl {
16
17// clang-format off
18
19/// \note Non-standard extension
20/// \headerfile etl/iterator.hpp
21/// \ingroup iterator
22template <typename Iter>
23concept legacy_input_iterator = etl::legacy_iterator<Iter> and etl::equality_comparable<Iter> and requires(Iter i) {
24 typename etl::incrementable_traits<Iter>::difference_type;
25 typename etl::indirectly_readable_traits<Iter>::value_type;
26 // typename etl::common_reference_t<etl::iter_reference_t<Iter>&&, typename etl::indirectly_readable_traits<Iter>::value_type&>;
27 *i++;
28 // typename etl::common_reference_t<decltype(*i++)&&, typename etl::indirectly_readable_traits<Iter>::value_type&>;
29 requires etl::signed_integral<typename etl::incrementable_traits<Iter>::difference_type>;
30};
31
32// clang-format on
33
34} // namespace etl
35
36#endif // TETL_ITERATOR_LEGACY_INPUT_ITERATOR_HPP
Definition adjacent_find.hpp:9
Definition incrementable_traits.hpp:21
Definition indirectly_readable_traits.hpp:35