Iros
Loading...
Searching...
No Matches
unpack.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/function/invoke.h
"
4
#include "
di/meta/core.h
"
5
#include "
di/types/prelude.h
"
6
7
namespace
di::function
{
8
namespace
detail
{
9
template
<
typename
Ind>
10
struct
UnpackFunction
{};
11
12
template
<
auto
... values>
13
struct
UnpackFunction
<
meta
::ListV<values...>> {
14
template
<
typename
F>
15
requires
(
concepts::Invocable
<F&,
meta::ListV
<values...>>)
16
constexpr
auto
operator
()(F&&
function
)
const
->
decltype
(
auto
) {
17
return
function::invoke
(
function
,
meta::ListV<values...>
{});
18
}
19
};
20
21
}
22
23
template
<
typename
Seq>
24
constexpr
inline
auto
unpack
=
detail::UnpackFunction<Seq>
{};
25
}
di::concepts::Invocable
Definition
invoke.h:58
core.h
prelude.h
invoke.h
di::function::detail
Definition
bind_back.h:16
di::function
Definition
as_bool.h:8
di::function::unpack
constexpr auto unpack
Definition
unpack.h:24
di::function::invoke
constexpr auto invoke
Definition
invoke.h:100
di::meta
Definition
merge_interfaces.h:6
di::function::detail::UnpackFunction
Definition
unpack.h:10
di::meta::ListV
Definition
core.h:8
libs
di
include
di
function
unpack.h
Generated by
1.13.0