Iros
 
Loading...
Searching...
No Matches
take.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace di::container::view {
11namespace detail {
12 struct TakeFunction {
13 template<concepts::ViewableContainer Con, concepts::ConvertibleTo<meta::ContainerSSizeType<Con>> Diff>
14 constexpr auto operator()(Con&& container, Diff&& difference) const -> concepts::View auto {
16 return function::tag_invoke(*this, util::forward<Con>(container), util::forward<Diff>(difference));
26 static_cast<meta::ContainerSSizeType<Con>>(difference)));
27 } else {
28 return TakeView { util::forward<Con>(container),
29 static_cast<meta::ContainerSSizeType<Con>>(difference) };
30 }
31 }
32 };
33}
34
36}
37
38namespace di {
39using view::take;
40}
Definition take_view.h:16
Definition borrowed_container.h:8
Definition container_iterator_reconstructible_container.h:13
Definition random_access_container.h:8
Definition sized_container.h:8
Definition tag_invoke.h:33
Definition view.h:10
Definition adjacent.h:9
Definition adjacent.h:8
constexpr auto take
Definition take.h:35
Definition sequence.h:12
constexpr auto min
Definition min.h:47
constexpr auto ssize
Definition ssize.h:34
constexpr auto reconstruct
Definition reconstruct.h:75
constexpr auto begin
Definition begin.h:44
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto curry_back
Definition curry_back.h:141
IteratorSSizeType< ContainerIterator< T > > ContainerSSizeType
Definition container_ssize_type.h:8
RemoveCV< RemoveReference< T > > RemoveCVRef
Definition core.h:74
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
decltype(container::begin(util::declval< T & >())) ContainerIterator
Definition container_iterator.h:8
Definition zstring_parser.h:9
constexpr auto in_place_type
Definition in_place_type.h:12
constexpr auto operator()(Con &&container, Diff &&difference) const -> concepts::View auto
Definition take.h:14