tetl
0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
indirectly_unary_invocable.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSL-1.0
2
3
#ifndef TETL_ITERATOR_INDIRECTLY_UNARY_INVOCABLE_HPP
4
#define TETL_ITERATOR_INDIRECTLY_UNARY_INVOCABLE_HPP
5
6
#include <
etl/_concepts/common_reference_with.hpp
>
7
#include <
etl/_concepts/copy_constructible.hpp
>
8
#include <
etl/_concepts/invocable.hpp
>
9
#include <
etl/_iterator/indirectly_readable.hpp
>
10
#include <
etl/_iterator/iter_common_reference_t.hpp
>
11
#include <
etl/_iterator/iter_reference_t.hpp
>
12
#include <
etl/_iterator/iter_value_t.hpp
>
13
#include <
etl/_type_traits/invoke_result.hpp
>
14
15
namespace
etl
{
16
17
// clang-format off
18
template
<
typename
F,
typename
Iter>
19
concept
indirectly_unary_invocable
=
20
etl::indirectly_readable<Iter>
21
and
etl::copy_constructible<F>
22
and
etl::invocable<F&, etl::iter_value_t<Iter>
&>
23
and
etl::invocable<F&, etl::iter_reference_t<Iter>
>
24
and
etl::invocable<F&, etl::iter_common_reference_t<Iter>
>
25
and
etl::common_reference_with<etl::invoke_result_t<F&, etl::iter_value_t<Iter>
&>, etl::invoke_result_t<F&, etl::iter_reference_t<Iter>>>;
26
// clang-format on
27
28
}
// namespace etl
29
30
#endif
// TETL_ITERATOR_INDIRECTLY_UNARY_INVOCABLE_HPP
common_reference_with.hpp
etl::common_reference_with
Definition
common_reference_with.hpp:16
etl::copy_constructible
The concept copy_constructible is satisfied if T is an lvalue reference type, or if it is a move_cons...
Definition
copy_constructible.hpp:20
etl::indirectly_readable
Definition
indirectly_readable.hpp:32
etl::indirectly_unary_invocable
Definition
indirectly_unary_invocable.hpp:19
etl::invocable
Definition
invocable.hpp:13
copy_constructible.hpp
indirectly_readable.hpp
invocable.hpp
invoke_result.hpp
iter_common_reference_t.hpp
iter_reference_t.hpp
iter_value_t.hpp
etl
Definition
adjacent_find.hpp:8
include
etl
_iterator
indirectly_unary_invocable.hpp
Generated on Sat Mar 8 2025 16:19:59 for tetl by
1.14.0