Iros
Loading...
Searching...
No Matches
range.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/view/iota.h
"
4
#include "
di/meta/language.h
"
5
6
namespace
di::container::view
{
7
namespace
detail
{
8
struct
RangeFunction
:
function::pipeline::EnablePipeline
{
9
template
<concepts::Integer T>
10
constexpr
auto
operator()
(T
end
)
const
{
11
return
view::iota
(
static_cast<
T
>
(0),
end
);
12
}
13
14
template
<concepts::Integer T, concepts::Integer U>
15
requires
(
concepts::SignedInteger<T>
==
concepts::SignedInteger<U>
)
16
constexpr
auto
operator
()(T start, U
end
)
const
{
17
return
view::iota
(start,
end
);
18
}
19
};
20
}
21
22
constexpr
inline
auto
range
=
detail::RangeFunction
{};
23
}
24
25
namespace
di
{
26
using
view::range;
27
}
di::concepts::SignedInteger
Definition
language.h:241
language.h
di::container::view::detail
Definition
adjacent.h:9
di::container::view
Definition
adjacent.h:8
di::container::view::iota
constexpr auto iota
Definition
iota.h:35
di::container::view::range
constexpr auto range
Definition
range.h:22
di::container::end
constexpr auto end
Definition
end.h:47
di
Definition
zstring_parser.h:9
di::container::view::detail::RangeFunction
Definition
range.h:8
di::container::view::detail::RangeFunction::operator()
constexpr auto operator()(T end) const
Definition
range.h:10
di::function::pipeline::EnablePipeline
Definition
pipeable.h:8
iota.h
libs
di
include
di
container
view
range.h
Generated by
1.13.0