Iros
Loading...
Searching...
No Matches
tuple_elements.h
Go to the documentation of this file.
1
#include "
di/meta/algorithm.h
"
2
#include "
di/meta/constexpr.h
"
3
#include "
di/types/prelude.h
"
4
#include "
di/vocab/tuple/tuple_element.h
"
5
#include "
di/vocab/tuple/tuple_like.h
"
6
7
namespace
di::meta
{
8
namespace
detail
{
9
template
<
typename
...>
10
struct
GetElementHelper
;
11
12
template
<
typename
Tup, usize index>
13
struct
GetElementHelper<Tup, Constexpr<index>
> :
TypeConstant<TupleElement<Tup, index>
> {};
14
15
template
<concepts::TupleLike Tup>
16
struct
GetElement
{
17
template
<
typename
... Args>
18
using
Invoke
=
meta::Type
<
GetElementHelper
<Tup, Args...>>;
19
};
20
}
21
22
template
<concepts::TupleLike Tup>
23
using
TupleElements
=
24
meta::Transform<meta::AsList<meta::MakeIndexSequence<meta::TupleSize<Tup>
>>,
detail::GetElement<Tup>
>;
25
}
algorithm.h
constexpr.h
prelude.h
di::meta::detail
Definition
const_sentinel.h:8
di::meta
Definition
merge_interfaces.h:6
di::meta::Type
T::Type Type
Definition
core.h:26
di::meta::TupleElements
meta::Transform< meta::AsList< meta::MakeIndexSequence< meta::TupleSize< Tup > > >, detail::GetElement< Tup > > TupleElements
Definition
tuple_elements.h:23
di::meta::Transform
detail::TransformHelper< List, Function >::Type Transform
Definition
algorithm.h:186
di::meta::TypeConstant
Definition
core.h:18
di::meta::detail::GetElementHelper
Definition
tuple_elements.h:10
di::meta::detail::GetElement
Definition
tuple_elements.h:16
di::meta::detail::GetElement::Invoke
meta::Type< GetElementHelper< Tup, Args... > > Invoke
Definition
tuple_elements.h:18
tuple_element.h
tuple_like.h
libs
di
include
di
vocab
tuple
tuple_elements.h
Generated by
1.13.0