brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · cc7daa3 Raw
369 lines · plain
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-exception7//8//===----------------------------------------------------------------------===//9 10export namespace std {11  namespace ranges {12    inline namespace __cpo {13      // [range.access], range access14      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 __cpo29 30    // [range.range], ranges31    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 ranges50    using std::ranges::disable_sized_range;51    using std::ranges::sized_range;52 53    // [range.view], views54    using std::ranges::enable_view;55    using std::ranges::view;56    using std::ranges::view_base;57 58    // [range.refinements], other range refinements59    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_­interface70    using std::ranges::view_interface;71 72    // [range.subrange], sub-ranges73    using std::ranges::subrange;74    using std::ranges::subrange_kind;75 76    using std::ranges::get;77  } // namespace ranges78 79  using std::ranges::get;80 81  namespace ranges {82 83    // [range.dangling], dangling iterator handling84    using std::ranges::dangling;85 86    // [range.elementsof], class template elements_­of87    // 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 >= 2394    // [range.utility.conv], range conversions95    using std::ranges::to;96#endif97 98    // [range.empty], empty view99    using std::ranges::empty_view;100 101    namespace views {102      using std::ranges::views::empty;103    }104 105    // [range.single], single view106    using std::ranges::single_view;107 108    namespace views {109      using std::ranges::views::single;110    } // namespace views111 112    // [range.iota], iota view113    using std::ranges::iota_view;114 115    namespace views {116      using std::ranges::views::iota;117#if _LIBCPP_STD_VER >= 26118      using std::ranges::views::indices;119#endif120    } // namespace views121 122#if _LIBCPP_STD_VER >= 23123    // [range.repeat], repeat view124    using std::ranges::repeat_view;125 126    namespace views {127      using std::ranges::views::repeat;128    } // namespace views129#endif // _LIBCPP_STD_VER >= 23130 131#if _LIBCPP_HAS_LOCALIZATION132    // [range.istream], istream view133    using std::ranges::basic_istream_view;134    using std::ranges::istream_view;135#  if _LIBCPP_HAS_WIDE_CHARACTERS136    using std::ranges::wistream_view;137#  endif138 139    namespace views {140      using std::ranges::views::istream;141    }142#endif // _LIBCPP_HAS_LOCALIZATION143 144    // Note: This declaration not in the synopsis or explicitly in the wording.145    // However it is needed for the range adaptors.146    // [range.adaptor.object]/3147    //   The template parameter D for range_adaptor_closure may be an148    //   incomplete type. If an expression of type cv D is used as an operand149    //   to the | operator, D shall be complete and model150    //   derived_from<range_adaptor_closure<D>>. The behavior of an expression151    //   involving an object of type cv D as an operand to the | operator is152    //   undefined if overload resolution selects a program-defined operator|153    //   function.154    // This is used internally in C++20 mode.155    using std::ranges::operator|;156#if _LIBCPP_STD_VER >= 23157    // [range.adaptor.object], range adaptor objects158    using std::ranges::range_adaptor_closure;159#endif160 161    // [range.all], all view162    namespace views {163      using std::ranges::views::all;164      using std::ranges::views::all_t;165    } // namespace views166 167    // [range.ref.view], ref view168    using std::ranges::ref_view;169 170    // [range.owning.view], owning view171    using std::ranges::owning_view;172 173#if _LIBCPP_STD_VER >= 23174    // [range.as.rvalue], as rvalue view175    using std::ranges::as_rvalue_view;176 177    namespace views {178      using std::ranges::views::as_rvalue;179    } // namespace views180#endif // _LIBCPP_STD_VER >= 23181 182    // [range.filter], filter view183    using std::ranges::filter_view;184 185    namespace views {186      using std::ranges::views::filter;187    } // namespace views188 189    // [range.transform], transform view190    using std::ranges::transform_view;191 192    namespace views {193      using std::ranges::views::transform;194    } // namespace views195 196    // [range.take], take view197    using std::ranges::take_view;198 199    namespace views {200      using std::ranges::views::take;201    } // namespace views202 203    // [range.take.while], take while view204    using std::ranges::take_while_view;205 206    namespace views {207      using std::ranges::views::take_while;208    } // namespace views209 210    // [range.drop], drop view211    using std::ranges::drop_view;212 213    namespace views {214      using std::ranges::views::drop;215    } // namespace views216 217    // [range.drop.while], drop while view218    using std::ranges::drop_while_view;219 220    namespace views {221      using std::ranges::views::drop_while;222    } // namespace views223 224    using std::ranges::join_view;225 226    namespace views {227      using std::ranges::views::join;228    } // namespace views229 230#if _LIBCPP_STD_VER >= 23231    // [range.join.with]232    using std::ranges::join_with_view;233 234    namespace views {235      using std::ranges::views::join_with;236    } // namespace views237#endif // _LIBCPP_STD_VER >= 23238 239    using std::ranges::lazy_split_view;240 241    // [range.split], split view242    using std::ranges::split_view;243 244    namespace views {245      using std::ranges::views::lazy_split;246      using std::ranges::views::split;247    } // namespace views248 249    // [range.counted], counted view250    namespace views {251      using std::ranges::views::counted;252    } // namespace views253 254    // [range.common], common view255    using std::ranges::common_view;256 257    namespace views {258      using std::ranges::views::common;259    } // namespace views260 261    // [range.reverse], reverse view262    using std::ranges::reverse_view;263 264    namespace views {265      using std::ranges::views::reverse;266    } // namespace views267 268    // [range.as.const], as const view269#if 0270    using std::ranges::as_const_view;271 272    namespace views {273      using std::ranges::views::as_const;274    } // namespace views275#endif276    // [range.elements], elements view277    using std::ranges::elements_view;278 279    using std::ranges::keys_view;280    using std::ranges::values_view;281 282    namespace views {283      using std::ranges::views::elements;284      using std::ranges::views::keys;285      using std::ranges::views::values;286    } // namespace views287 288#if _LIBCPP_STD_VER >= 23289    // [range.zip], zip view290    using std::ranges::zip_view;291 292    namespace views {293      using std::ranges::views::zip;294    } // namespace views295 296    // [range.zip.transform], zip transform view297    using std::ranges::zip_transform_view;298 299    namespace views {300      using std::ranges::views::zip_transform;301    }302#endif // _LIBCPP_STD_VER >= 23303 304#if 0305    using std::ranges::adjacent_view;306 307    namespace views {308      using std::ranges::views::adjacent;309      using std::ranges::views::pairwise;310    } // namespace views311 312    using std::ranges::adjacent_transform_view;313 314    namespace views {315      using std::ranges::views::adjacent_transform;316      using std::ranges::views::pairwise_transform;317    } // namespace views318 319    using std::ranges::chunk_view;320 321    using std::ranges::chunk_view<V>;322 323    namespace views {324      using std::ranges::views::chunk;325    }326 327    using std::ranges::slide_view;328 329    namespace views {330      using std::ranges::views::slide;331    }332#endif333 334#if _LIBCPP_STD_VER >= 23335    // [range.chunk.by], chunk by view336    using std::ranges::chunk_by_view;337 338    namespace views {339      using std::ranges::views::chunk_by;340    }341#endif // _LIBCPP_STD_VER >= 23342 343#if 0344    // [range.stride], stride view345    using std::ranges::stride_view;346 347    namespace views {348      using std::ranges::views::stride;349    }350 351    using std::ranges::cartesian_product_view;352 353    namespace views {354      using std::ranges::views::cartesian_product;355    }356#endif357  } // namespace ranges358 359  namespace views = ranges::views;360 361  using std::tuple_element;362  using std::tuple_size;363 364#if _LIBCPP_STD_VER >= 23365  using std::from_range;366  using std::from_range_t;367#endif // _LIBCPP_STD_VER >= 23368} // namespace std369