Iros
Loading...
Searching...
No Matches
adjacent.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/view/adjacent_view.h
"
4
#include "
di/container/view/empty.h
"
5
#include "
di/function/pipeline.h
"
6
#include "
di/function/tag_invoke.h
"
7
8
namespace
di::container::view
{
9
namespace
detail
{
10
template
<
size_t
N>
11
struct
AdjacentFunction
:
function::pipeline::EnablePipeline
{
12
template
<concepts::ViewableContainer Con>
13
constexpr
auto
operator()
(Con&&
container
)
const
->
concepts::View
auto
{
14
if
constexpr
(N == 0) {
15
return
empty<Tuple<>
>;
16
}
else
{
17
return
AdjacentView<meta::AsView<Con>
, N>(util::forward<Con>(
container
));
18
}
19
}
20
};
21
}
22
23
template
<
size_t
N>
24
constexpr
inline
auto
adjacent
=
detail::AdjacentFunction<N>
{};
25
}
26
27
namespace
di
{
28
using
view::adjacent;
29
}
adjacent_view.h
di::container::AdjacentView
Definition
adjacent_view.h:20
di::concepts::View
Definition
view.h:10
di::container::view::detail
Definition
adjacent.h:9
di::container::view
Definition
adjacent.h:8
di::container::view::adjacent
constexpr auto adjacent
Definition
adjacent.h:24
di::container::view::empty
constexpr auto empty
Definition
empty.h:7
di::container
Definition
sequence.h:12
di
Definition
zstring_parser.h:9
pipeline.h
di::container::view::detail::AdjacentFunction
Definition
adjacent.h:11
di::container::view::detail::AdjacentFunction::operator()
constexpr auto operator()(Con &&container) const -> concepts::View auto
Definition
adjacent.h:13
di::function::pipeline::EnablePipeline
Definition
pipeable.h:8
tag_invoke.h
empty.h
libs
di
include
di
container
view
adjacent.h
Generated by
1.13.0