Iros
Loading...
Searching...
No Matches
indirectly_unary_invocable.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/concepts/indirectly_readable.h
"
4
#include "
di/container/meta/iterator_common_reference.h
"
5
#include "
di/container/meta/iterator_reference.h
"
6
#include "
di/container/meta/iterator_value.h
"
7
#include "
di/function/invoke.h
"
8
#include "
di/meta/operations.h
"
9
10
namespace
di::concepts
{
11
template
<
typename
F,
typename
It>
12
concept
IndirectlyUnaryInvocable
=
13
IndirectlyReadable<It>
&&
CopyConstructible<F>
&&
Invocable<F&, meta::IteratorValue<It>
&> &&
14
Invocable<F&, meta::IteratorReference<It>
> &&
Invocable<F&, meta::IteratorCommonReference<It>
> &&
15
CommonReferenceWith<meta::InvokeResult<F&, meta::IteratorValue<It>
&>,
16
meta::InvokeResult<F&, meta::IteratorReference<It>
>>;
17
}
di::concepts::CommonReferenceWith
Definition
common.h:203
di::concepts::CopyConstructible
Definition
operations.h:34
di::concepts::IndirectlyReadable
Definition
indirectly_readable.h:26
di::concepts::IndirectlyUnaryInvocable
Definition
indirectly_unary_invocable.h:12
di::concepts::Invocable
Definition
invoke.h:58
operations.h
indirectly_readable.h
invoke.h
iterator_common_reference.h
iterator_reference.h
iterator_value.h
di::concepts
Definition
any_storable.h:9
di::meta::InvokeResult
decltype(function::detail::invoke_impl(util::declval< Ts >()...)) InvokeResult
Definition
invoke.h:64
libs
di
include
di
container
concepts
indirectly_unary_invocable.h
Generated by
1.13.0