• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10export namespace std {
11  namespace ranges {
12    inline namespace __cpo {
13      // [range.access], range access
14      using std::ranges::__cpo::begin;
15      using std::ranges::__cpo::cbegin;
16      using std::ranges::__cpo::cend;
17      using std::ranges::__cpo::crbegin;
18      using std::ranges::__cpo::crend;
19      using std::ranges::__cpo::end;
20      using std::ranges::__cpo::rbegin;
21      using std::ranges::__cpo::rend;
22
23      using std::ranges::__cpo::cdata;
24      using std::ranges::__cpo::data;
25      using std::ranges::__cpo::empty;
26      using std::ranges::__cpo::size;
27      using std::ranges::__cpo::ssize;
28    } // namespace __cpo
29
30    // [range.range], ranges
31    using std::ranges::range;
32
33    using std::ranges::enable_borrowed_range;
34
35    using std::ranges::borrowed_range;
36
37    // using std::ranges::const_iterator_t;
38    // using std::ranges::const_sentinel_t;
39    using std::ranges::iterator_t;
40    // using std::ranges::range_const_reference_t;
41    using std::ranges::range_common_reference_t;
42    using std::ranges::range_difference_t;
43    using std::ranges::range_reference_t;
44    using std::ranges::range_rvalue_reference_t;
45    using std::ranges::range_size_t;
46    using std::ranges::range_value_t;
47    using std::ranges::sentinel_t;
48
49    // [range.sized], sized ranges
50    using std::ranges::disable_sized_range;
51    using std::ranges::sized_range;
52
53    // [range.view], views
54    using std::ranges::enable_view;
55    using std::ranges::view;
56    using std::ranges::view_base;
57
58    // [range.refinements], other range refinements
59    using std::ranges::bidirectional_range;
60    using std::ranges::common_range;
61    // using std::ranges::constant_range;
62    using std::ranges::contiguous_range;
63    using std::ranges::forward_range;
64    using std::ranges::input_range;
65    using std::ranges::output_range;
66    using std::ranges::random_access_range;
67    using std::ranges::viewable_range;
68
69    // [view.interface], class template view_­interface
70    using std::ranges::view_interface;
71
72    // [range.subrange], sub-ranges
73    using std::ranges::subrange;
74    using std::ranges::subrange_kind;
75
76    using std::ranges::get;
77  } // namespace ranges
78
79  using std::ranges::get;
80
81  namespace ranges {
82
83    // [range.dangling], dangling iterator handling
84    using std::ranges::dangling;
85
86    // [range.elementsof], class template elements_­of
87    // using std::ranges::elements_of;
88
89    using std::ranges::borrowed_iterator_t;
90
91    using std::ranges::borrowed_subrange_t;
92
93#if _LIBCPP_STD_VER >= 23
94    // [range.utility.conv], range conversions
95    using std::ranges::to;
96#endif
97
98    // [range.empty], empty view
99    using std::ranges::empty_view;
100
101    namespace views {
102      using std::ranges::views::empty;
103    }
104
105    // [range.single], single view
106    using std::ranges::single_view;
107
108    namespace views {
109      using std::ranges::views::single;
110    } // namespace views
111
112    // [range.iota], iota view
113    using std::ranges::iota_view;
114
115    namespace views {
116      using std::ranges::views::iota;
117    } // namespace views
118
119#if _LIBCPP_STD_VER >= 23
120    // [range.repeat], repeat view
121    using std::ranges::repeat_view;
122
123    namespace views {
124      using std::ranges::views::repeat;
125    } // namespace views
126#endif // _LIBCPP_STD_VER >= 23
127
128#ifndef _LIBCPP_HAS_NO_LOCALIZATION
129    // [range.istream], istream view
130    using std::ranges::basic_istream_view;
131    using std::ranges::istream_view;
132#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
133    using std::ranges::wistream_view;
134#  endif
135
136    namespace views {
137      using std::ranges::views::istream;
138    }
139#endif // _LIBCPP_HAS_NO_LOCALIZATION
140
141    // [range.adaptor.object], range adaptor objects
142    // using std::ranges::range_adaptor_closure;
143
144    // [range.all], all view
145    namespace views {
146      using std::ranges::views::all;
147      using std::ranges::views::all_t;
148    } // namespace views
149
150    // [range.ref.view], ref view
151    using std::ranges::ref_view;
152
153    // [range.owning.view], owning view
154    using std::ranges::owning_view;
155
156#if _LIBCPP_STD_VER >= 23
157    // [range.as.rvalue], as rvalue view
158    using std::ranges::as_rvalue_view;
159
160    namespace views {
161      using std::ranges::views::as_rvalue;
162    } // namespace views
163#endif // _LIBCPP_STD_VER >= 23
164
165    // [range.filter], filter view
166    using std::ranges::filter_view;
167
168    namespace views {
169      using std::ranges::views::filter;
170    } // namespace views
171
172    // [range.transform], transform view
173    using std::ranges::transform_view;
174
175    namespace views {
176      using std::ranges::views::transform;
177    } // namespace views
178
179    // [range.take], take view
180    using std::ranges::take_view;
181
182    namespace views {
183      using std::ranges::views::take;
184    } // namespace views
185
186    // [range.take.while], take while view
187    using std::ranges::take_while_view;
188
189    namespace views {
190      using std::ranges::views::take_while;
191    } // namespace views
192
193    // [range.drop], drop view
194    using std::ranges::drop_view;
195
196    namespace views {
197      using std::ranges::views::drop;
198    } // namespace views
199
200    // [range.drop.while], drop while view
201    using std::ranges::drop_while_view;
202
203    namespace views {
204      using std::ranges::views::drop_while;
205    } // namespace views
206
207#ifdef _LIBCPP_ENABLE_EXPERIMENTAL
208    using std::ranges::join_view;
209
210    namespace views {
211      using std::ranges::views::join;
212    } // namespace views
213#endif // _LIBCPP_ENABLE_EXPERIMENTAL
214#if 0
215    using std::ranges::join_with_view;
216
217    namespace views {
218      using std::ranges::views::join_with;
219    } // namespace views
220#endif
221    using std::ranges::lazy_split_view;
222
223    // [range.split], split view
224    using std::ranges::split_view;
225
226    namespace views {
227      using std::ranges::views::lazy_split;
228      using std::ranges::views::split;
229    } // namespace views
230
231    // [range.counted], counted view
232    namespace views {
233      using std::ranges::views::counted;
234    } // namespace views
235
236    // [range.common], common view
237    using std::ranges::common_view;
238
239    namespace views {
240      using std::ranges::views::common;
241    } // namespace views
242
243    // [range.reverse], reverse view
244    using std::ranges::reverse_view;
245
246    namespace views {
247      using std::ranges::views::reverse;
248    } // namespace views
249
250    // [range.as.const], as const view
251#if 0
252    using std::ranges::as_const_view;
253
254    namespace views {
255      using std::ranges::views::as_const;
256    } // namespace views
257#endif
258    // [range.elements], elements view
259    using std::ranges::elements_view;
260
261    using std::ranges::keys_view;
262    using std::ranges::values_view;
263
264    namespace views {
265      using std::ranges::views::elements;
266      using std::ranges::views::keys;
267      using std::ranges::views::values;
268    } // namespace views
269
270#if _LIBCPP_STD_VER >= 23
271    // [range.zip], zip view
272    using std::ranges::zip_view;
273
274    namespace views {
275      using std::ranges::views::zip;
276    } // namespace views
277#endif // _LIBCPP_STD_VER >= 23
278
279#if 0
280    // [range.zip.transform], zip transform view
281    using std::ranges::zip_transform_view;
282
283    namespace views {
284      using std::ranges::views::zip_transform;
285    }
286
287    using std::ranges::adjacent_view;
288
289    namespace views {
290      using std::ranges::views::adjacent;
291      using std::ranges::views::pairwise;
292    } // namespace views
293
294    using std::ranges::adjacent_transform_view;
295
296    namespace views {
297      using std::ranges::views::adjacent_transform;
298      using std::ranges::views::pairwise_transform;
299    } // namespace views
300
301    using std::ranges::chunk_view;
302
303    using std::ranges::chunk_view<V>;
304
305    namespace views {
306      using std::ranges::views::chunk;
307    }
308
309    using std::ranges::slide_view;
310
311    namespace views {
312      using std::ranges::views::slide;
313    }
314#endif
315
316#if _LIBCPP_STD_VER >= 23
317    // [range.chunk.by], chunk by view
318    using std::ranges::chunk_by_view;
319
320    namespace views {
321      using std::ranges::views::chunk_by;
322    }
323#endif // _LIBCPP_STD_VER >= 23
324
325#if 0
326    // [range.stride], stride view
327    using std::ranges::stride_view;
328
329    namespace views {
330      using std::ranges::views::stride;
331    }
332
333    using std::ranges::cartesian_product_view;
334
335    namespace views {
336      using std::ranges::views::cartesian_product;
337    }
338#endif
339  } // namespace ranges
340
341  namespace views = ranges::views;
342
343  using std::tuple_element;
344  using std::tuple_size;
345
346#if _LIBCPP_STD_VER >= 23
347  using std::from_range;
348  using std::from_range_t;
349#endif // _LIBCPP_STD_VER >= 23
350} // namespace std
351