di
0.1.0
Loading...
Searching...
No Matches
indirectly_binary_right_foldable.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/concepts/indirectly_binary_left_foldable.h
"
4
#include "
di/function/flip.h
"
5
#include "
di/util/declval.h
"
6
7
namespace
di::concepts
{
8
namespace
detail {
9
template
<
typename
F>
10
class
FlippedHelper {
11
private
:
12
F f;
13
14
public
:
15
template
<
typename
T,
typename
U>
16
requires
(concepts::Invocable<F&, U, T>)
17
auto
operator
()(T&&, U&&) ->
meta::InvokeResult<F&, U, T>
;
18
};
19
}
20
21
template
<
typename
F,
typename
T,
typename
Iter>
22
concept
IndirectlyBinaryRightFoldable
=
IndirectlyBinaryLeftFoldable<detail::FlippedHelper<F>
, T, Iter>;
23
;
24
}
di::concepts::IndirectlyBinaryLeftFoldable
Definition
indirectly_binary_left_foldable.h:18
di::concepts::IndirectlyBinaryRightFoldable
Definition
indirectly_binary_right_foldable.h:22
declval.h
flip.h
indirectly_binary_left_foldable.h
di::concepts
Definition
any_storable.h:9
di::meta::InvokeResult
decltype(function::detail::invoke_impl(util::declval< Ts >()...)) InvokeResult
Definition
invoke.h:64
di
container
concepts
indirectly_binary_right_foldable.h
Generated by
1.13.2