Iros
 
Loading...
Searching...
No Matches
join.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::container::view {
7namespace detail {
8 struct JoinFunction;
9
10 template<typename Con>
12
13 template<typename Con>
14 concept ViewJoin = requires(Con&& container) { JoinView { util::forward<Con>(container) }; };
15
17 template<concepts::ViewableContainer Con>
19 constexpr auto operator()(Con&& container) const -> concepts::View auto {
20 if constexpr (CustomJoin<Con>) {
21 return function::tag_invoke(*this, util::forward<Con>(container));
22 } else {
23 return JoinView { util::forward<Con>(container) };
24 }
25 }
26 };
27
28}
29
30constexpr inline auto join = detail::JoinFunction {};
31}
32
33namespace di {
34using view::join;
35}
Definition join_view.h:15
Definition tag_invoke.h:33
Definition view.h:10
Definition adjacent.h:9
Definition adjacent.h:8
constexpr auto join
Definition join.h:30
Definition sequence.h:12
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition zstring_parser.h:9