245 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 // [iterator.assoc.types], associated types12 // [incrementable.traits], incrementable traits13 using std::incrementable_traits;14 using std::iter_difference_t;15 16 using std::indirectly_readable_traits;17 using std::iter_value_t;18 19 // [iterator.traits], iterator traits20 using std::iterator_traits;21 22 using std::iter_reference_t;23 24 namespace ranges {25 // [iterator.cust], customization point objects26 inline namespace __cpo {27 // [iterator.cust.move], ranges::iter_move28 using std::ranges::__cpo::iter_move;29 30 // [iterator.cust.swap], ranges::iter_swap31 using std::ranges::__cpo::iter_swap;32 } // namespace __cpo33 } // namespace ranges34 35 using std::iter_rvalue_reference_t;36 37 // [iterator.concepts], iterator concepts38 // [iterator.concept.readable], concept indirectly_readable39 using std::indirectly_readable;40 41 using std::iter_common_reference_t;42 43 // [iterator.concept.writable], concept indirectly_writable44 using std::indirectly_writable;45 46 // [iterator.concept.winc], concept weakly_incrementable47 using std::weakly_incrementable;48 49 // [iterator.concept.inc], concept incrementable50 using std::incrementable;51 52 // [iterator.concept.iterator], concept input_or_output_iterator53 using std::input_or_output_iterator;54 55 // [iterator.concept.sentinel], concept sentinel_for56 using std::sentinel_for;57 58 // [iterator.concept.sizedsentinel], concept sized_sentinel_for59 using std::disable_sized_sentinel_for;60 61 using std::sized_sentinel_for;62 63 // [iterator.concept.input], concept input_iterator64 using std::input_iterator;65 66 // [iterator.concept.output], concept output_iterator67 using std::output_iterator;68 69 // [iterator.concept.forward], concept forward_iterator70 using std::forward_iterator;71 72 // [iterator.concept.bidir], concept bidirectional_iterator73 using std::bidirectional_iterator;74 75 // [iterator.concept.random.access], concept random_access_iterator76 using std::random_access_iterator;77 78 // [iterator.concept.contiguous], concept contiguous_iterator79 using std::contiguous_iterator;80 81 // [indirectcallable], indirect callable requirements82 // [indirectcallable.indirectinvocable], indirect callables83 using std::indirectly_unary_invocable;84 85 using std::indirectly_regular_unary_invocable;86 87 using std::indirect_unary_predicate;88 89 using std::indirect_binary_predicate;90 91 using std::indirect_equivalence_relation;92 93 using std::indirect_strict_weak_order;94 95 using std::indirect_result_t;96 97 // [projected], projected98 using std::projected;99 100 // [alg.req], common algorithm requirements101 // [alg.req.ind.move], concept indirectly_movable102 using std::indirectly_movable;103 104 using std::indirectly_movable_storable;105 106 // [alg.req.ind.copy], concept indirectly_copyable107 using std::indirectly_copyable;108 109 using std::indirectly_copyable_storable;110 111 // [alg.req.ind.swap], concept indirectly_swappable112 using std::indirectly_swappable;113 114 // [alg.req.ind.cmp], concept indirectly_comparable115 using std::indirectly_comparable;116 117 // [alg.req.permutable], concept permutable118 using std::permutable;119 120 // [alg.req.mergeable], concept mergeable121 using std::mergeable;122 123 // [alg.req.sortable], concept sortable124 using std::sortable;125 126 // [iterator.primitives], primitives127 // [std.iterator.tags], iterator tags128 using std::bidirectional_iterator_tag;129 using std::contiguous_iterator_tag;130 using std::forward_iterator_tag;131 using std::input_iterator_tag;132 using std::output_iterator_tag;133 using std::random_access_iterator_tag;134 135 // [iterator.operations], iterator operations136 using std::advance;137 using std::distance;138 using std::next;139 using std::prev;140 141 // [range.iter.ops], range iterator operations142 namespace ranges {143 // [range.iter.op.advance], ranges::advance144 using std::ranges::advance;145 146 // [range.iter.op.distance], ranges::distance147 using std::ranges::distance;148 149 // [range.iter.op.next], ranges::next150 using std::ranges::next;151 152 // [range.iter.op.prev], ranges::prev153 using std::ranges::prev;154 } // namespace ranges155 156 // [predef.iterators], predefined iterators and sentinels157 // [reverse.iterators], reverse iterators158 using std::reverse_iterator;159 160 using std::operator==;161 using std::operator!=;162 using std::operator<;163 using std::operator>;164 using std::operator<=;165 using std::operator>=;166 using std::operator<=>;167 168 using std::operator-;169 using std::operator+;170 171 using std::make_reverse_iterator;172 173 // using std::disable_sized_sentinel_for;174 175 // [insert.iterators], insert iterators176 using std::back_insert_iterator;177 using std::back_inserter;178 179 using std::front_insert_iterator;180 using std::front_inserter;181 182 using std::insert_iterator;183 using std::inserter;184 185 // [const.iterators], constant iterators and sentinels186 // [const.iterators.alias], alias templates187 // using std::const_iterator;188 // using std::const_sentinel;189 // using std::iter_const_reference_t;190 191 // [const.iterators.iterator], class template basic_const_iterator192 // using std::basic_const_iterator;193 194 // using std::common_type;195 196 // using std::make_const_iterator;197 198 // [move.iterators], move iterators and sentinels199 using std::move_iterator;200 201 using std::make_move_iterator;202 203 using std::move_sentinel;204 205 using std::common_iterator;206 207 // [default.sentinel], default sentinel208 using std::default_sentinel;209 using std::default_sentinel_t;210 211 // [iterators.counted], counted iterators212 using std::counted_iterator;213 214 // [unreachable.sentinel], unreachable sentinel215 using std::unreachable_sentinel;216 using std::unreachable_sentinel_t;217 218 // [stream.iterators], stream iterators219 using std::istream_iterator;220 221 using std::ostream_iterator;222 223 using std::istreambuf_iterator;224 using std::ostreambuf_iterator;225 226 // [iterator.range], range access227 using std::begin;228 using std::cbegin;229 using std::cend;230 using std::crbegin;231 using std::crend;232 using std::end;233 using std::rbegin;234 using std::rend;235 236 using std::empty;237 using std::size;238 using std::ssize;239 240 using std::data;241 242 // [depr.iterator]243 using std::iterator;244} // namespace std245