tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
weakly_incrementable.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2023 Tobias Hienzsch
3
4#ifndef TETL_ITERATOR_WEAKLY_INCREMENTABLE_HPP
5#define TETL_ITERATOR_WEAKLY_INCREMENTABLE_HPP
6
7#include <etl/_concepts/movable.hpp>
8#include <etl/_concepts/same_as.hpp>
9#include <etl/_concepts/signed_integral.hpp>
10#include <etl/_iterator/iter_difference_t.hpp>
11
12namespace etl {
13
14// clang-format off
15/// \ingroup iterator
16template <typename Iter>
17concept weakly_incrementable = etl::movable<Iter> and requires(Iter i) {
18 typename etl::iter_difference_t<Iter>;
19 requires etl::signed_integral<etl::iter_difference_t<Iter>>;
20 { ++i } -> etl::same_as<Iter&>;
21 i++;
22};
23// clang-format on
24
25} // namespace etl
26
27#endif // TETL_ITERATOR_WEAKLY_INCREMENTABLE_HPP
Definition adjacent_find.hpp:9