VCCC  2024.05
VisualCamp Common C++ library
join.hpp
Go to the documentation of this file.
1 //
2 // Created by yonggyulee on 1/31/24.
3 //
4 
5 #ifndef VCCC_RANGES_VIEWS_JOIN_HPP_
6 #define VCCC_RANGES_VIEWS_JOIN_HPP_
7 
8 #include <type_traits>
9 #include <utility>
10 
11 #include "vccc/__ranges/range.hpp"
15 
16 namespace vccc {
17 namespace ranges {
18 namespace views {
19 namespace detail {
20 
21 class join_adaptor_object : public range_adaptor_closure<join_adaptor_object> {
22  public:
24  constexpr auto operator()(R&& r) const {
25  return join_view<all_t<decltype((r))>>{std::forward<R>(r)};
26  }
27 };
28 
29 } // namespace detail
30 
33 
35 
37 
38 } // namespace views
39 } // namespace ranges
40 } // namespace vccc
41 
42 #endif // VCCC_RANGES_VIEWS_JOIN_HPP_
Definition: join_view.hpp:101
constexpr auto operator()(R &&r) const
Definition: join.hpp:24
constexpr VCCC_INLINE_OR_STATIC detail::join_adaptor_object join
Definition: join.hpp:34
typename detail::all_t_impl< R >::type all_t
Calculates the suitable view type of a viewable_range type.
Definition: all.hpp:107
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
helper base class template for defining a range adaptor closure object
Definition: range_adaptor_closure.hpp:96