| // -*- C++ -*- | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| export namespace std { | |
| // [iterator.assoc.types], associated types | |
| // [incrementable.traits], incrementable traits | |
| using std::incrementable_traits; | |
| using std::iter_difference_t; | |
| using std::indirectly_readable_traits; | |
| using std::iter_value_t; | |
| // [iterator.traits], iterator traits | |
| using std::iterator_traits; | |
| using std::iter_reference_t; | |
| namespace ranges { | |
| // [iterator.cust], customization point objects | |
| inline namespace __cpo { | |
| // [iterator.cust.move], ranges::iter_move | |
| using std::ranges::__cpo::iter_move; | |
| // [iterator.cust.swap], ranges::iter_swap | |
| using std::ranges::__cpo::iter_swap; | |
| } // namespace __cpo | |
| } // namespace ranges | |
| using std::iter_rvalue_reference_t; | |
| // [iterator.concepts], iterator concepts | |
| // [iterator.concept.readable], concept indirectly_readable | |
| using std::indirectly_readable; | |
| using std::iter_common_reference_t; | |
| // [iterator.concept.writable], concept indirectly_writable | |
| using std::indirectly_writable; | |
| // [iterator.concept.winc], concept weakly_incrementable | |
| using std::weakly_incrementable; | |
| // [iterator.concept.inc], concept incrementable | |
| using std::incrementable; | |
| // [iterator.concept.iterator], concept input_or_output_iterator | |
| using std::input_or_output_iterator; | |
| // [iterator.concept.sentinel], concept sentinel_for | |
| using std::sentinel_for; | |
| // [iterator.concept.sizedsentinel], concept sized_sentinel_for | |
| using std::disable_sized_sentinel_for; | |
| using std::sized_sentinel_for; | |
| // [iterator.concept.input], concept input_iterator | |
| using std::input_iterator; | |
| // [iterator.concept.output], concept output_iterator | |
| using std::output_iterator; | |
| // [iterator.concept.forward], concept forward_iterator | |
| using std::forward_iterator; | |
| // [iterator.concept.bidir], concept bidirectional_iterator | |
| using std::bidirectional_iterator; | |
| // [iterator.concept.random.access], concept random_access_iterator | |
| using std::random_access_iterator; | |
| // [iterator.concept.contiguous], concept contiguous_iterator | |
| using std::contiguous_iterator; | |
| // [indirectcallable], indirect callable requirements | |
| // [indirectcallable.indirectinvocable], indirect callables | |
| using std::indirectly_unary_invocable; | |
| using std::indirectly_regular_unary_invocable; | |
| using std::indirect_unary_predicate; | |
| using std::indirect_binary_predicate; | |
| using std::indirect_equivalence_relation; | |
| using std::indirect_strict_weak_order; | |
| using std::indirect_result_t; | |
| // [projected], projected | |
| using std::projected; | |
| // [alg.req], common algorithm requirements | |
| // [alg.req.ind.move], concept indirectly_movable | |
| using std::indirectly_movable; | |
| using std::indirectly_movable_storable; | |
| // [alg.req.ind.copy], concept indirectly_copyable | |
| using std::indirectly_copyable; | |
| using std::indirectly_copyable_storable; | |
| // [alg.req.ind.swap], concept indirectly_swappable | |
| using std::indirectly_swappable; | |
| // [alg.req.ind.cmp], concept indirectly_comparable | |
| using std::indirectly_comparable; | |
| // [alg.req.permutable], concept permutable | |
| using std::permutable; | |
| // [alg.req.mergeable], concept mergeable | |
| using std::mergeable; | |
| // [alg.req.sortable], concept sortable | |
| using std::sortable; | |
| // [iterator.primitives], primitives | |
| // [std.iterator.tags], iterator tags | |
| using std::bidirectional_iterator_tag; | |
| using std::contiguous_iterator_tag; | |
| using std::forward_iterator_tag; | |
| using std::input_iterator_tag; | |
| using std::output_iterator_tag; | |
| using std::random_access_iterator_tag; | |
| // [iterator.operations], iterator operations | |
| using std::advance; | |
| using std::distance; | |
| using std::next; | |
| using std::prev; | |
| // [range.iter.ops], range iterator operations | |
| namespace ranges { | |
| // [range.iter.op.advance], ranges::advance | |
| using std::ranges::advance; | |
| // [range.iter.op.distance], ranges::distance | |
| using std::ranges::distance; | |
| // [range.iter.op.next], ranges::next | |
| using std::ranges::next; | |
| // [range.iter.op.prev], ranges::prev | |
| using std::ranges::prev; | |
| } // namespace ranges | |
| // [predef.iterators], predefined iterators and sentinels | |
| // [reverse.iterators], reverse iterators | |
| using std::reverse_iterator; | |
| using std::operator==; | |
| using std::operator!=; | |
| using std::operator<; | |
| using std::operator>; | |
| using std::operator<=; | |
| using std::operator>=; | |
| using std::operator<=>; | |
| using std::operator-; | |
| using std::operator+; | |
| using std::make_reverse_iterator; | |
| // using std::disable_sized_sentinel_for; | |
| // [insert.iterators], insert iterators | |
| using std::back_insert_iterator; | |
| using std::back_inserter; | |
| using std::front_insert_iterator; | |
| using std::front_inserter; | |
| using std::insert_iterator; | |
| using std::inserter; | |
| // [const.iterators], constant iterators and sentinels | |
| // [const.iterators.alias], alias templates | |
| // using std::const_iterator; | |
| // using std::const_sentinel; | |
| // using std::iter_const_reference_t; | |
| // [const.iterators.iterator], class template basic_const_iterator | |
| // using std::basic_const_iterator; | |
| // using std::common_type; | |
| // using std::make_const_iterator; | |
| // [move.iterators], move iterators and sentinels | |
| using std::move_iterator; | |
| using std::make_move_iterator; | |
| using std::move_sentinel; | |
| using std::common_iterator; | |
| // [default.sentinel], default sentinel | |
| using std::default_sentinel; | |
| using std::default_sentinel_t; | |
| // [iterators.counted], counted iterators | |
| using std::counted_iterator; | |
| // [unreachable.sentinel], unreachable sentinel | |
| using std::unreachable_sentinel; | |
| using std::unreachable_sentinel_t; | |
| // [stream.iterators], stream iterators | |
| using std::istream_iterator; | |
| using std::ostream_iterator; | |
| using std::istreambuf_iterator; | |
| using std::ostreambuf_iterator; | |
| // [iterator.range], range access | |
| using std::begin; | |
| using std::cbegin; | |
| using std::cend; | |
| using std::crbegin; | |
| using std::crend; | |
| using std::end; | |
| using std::rbegin; | |
| using std::rend; | |
| using std::empty; | |
| using std::size; | |
| using std::ssize; | |
| using std::data; | |
| // [depr.iterator] | |
| using std::iterator; | |
| } // namespace std |