Iros
 
Loading...
Searching...
No Matches
transform.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/util/forward.h"
7
8namespace di::container::view {
9namespace detail {
10 template<typename Con, typename F>
11 concept RegularTransform = requires(Con&& container, F&& function) {
12 TransformView { util::forward<Con>(container), util::forward<F>(function) };
13 };
14
16 template<typename Con, typename F>
18 constexpr auto operator()(Con&& container, F&& function) const {
20 return function::tag_invoke(*this, util::forward<Con>(container), util::forward<F>(function));
21 } else {
22 return TransformView { util::forward<Con>(container), util::forward<F>(function) };
23 }
24 }
25 };
26}
27
29}
30
31namespace di {
32using view::transform;
33}
Definition transform_view.h:22
Definition tag_invoke.h:33
Definition adjacent.h:9
concept F
Definition zip_transform.h:12
Definition adjacent.h:8
constexpr auto transform
Definition transform.h:28
Definition sequence.h:12
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition as_bool.h:8
constexpr auto curry_back
Definition curry_back.h:141
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
Definition zstring_parser.h:9