| // -*- 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 { |
| namespace ranges { |
| // [algorithms.results], algorithm result types |
| using std::ranges::in_found_result; |
| using std::ranges::in_fun_result; |
| using std::ranges::in_in_out_result; |
| using std::ranges::in_in_result; |
| using std::ranges::in_out_out_result; |
| using std::ranges::in_out_result; |
| #if _LIBCPP_STD_VER >= 23 |
| using std::ranges::in_value_result; |
| #endif |
| using std::ranges::min_max_result; |
| // using std::ranges::out_value_result; |
| } // namespace ranges |
| |
| // [alg.nonmodifying], non-modifying sequence operations |
| // [alg.all.of], all of |
| using std::all_of; |
| namespace ranges { |
| using std::ranges::all_of; |
| } |
| |
| // [alg.any.of], any of |
| using std::any_of; |
| namespace ranges { |
| using std::ranges::any_of; |
| } |
| |
| // [alg.none.of], none of |
| using std::none_of; |
| namespace ranges { |
| using std::ranges::none_of; |
| } |
| |
| #if _LIBCPP_STD_VER >= 23 |
| // [alg.contains], contains |
| namespace ranges { |
| using std::ranges::contains; |
| using std::ranges::contains_subrange; |
| } // namespace ranges |
| #endif // _LIBCPP_STD_VER >= 23 |
| |
| // [alg.foreach], for each |
| using std::for_each; |
| |
| namespace ranges { |
| using std::ranges::for_each; |
| using std::ranges::for_each_result; |
| } // namespace ranges |
| |
| using std::for_each_n; |
| |
| namespace ranges { |
| using std::ranges::for_each_n_result; |
| |
| using std::ranges::for_each_n; |
| } // namespace ranges |
| |
| // [alg.find], find |
| using std::find; |
| using std::find_if; |
| using std::find_if_not; |
| |
| namespace ranges { |
| using std::ranges::find; |
| using std::ranges::find_if; |
| using std::ranges::find_if_not; |
| } // namespace ranges |
| |
| #if _LIBCPP_STD_VER >= 23 |
| // [alg.find.last], find last |
| namespace ranges { |
| using std::ranges::find_last; |
| using std::ranges::find_last_if; |
| using std::ranges::find_last_if_not; |
| } // namespace ranges |
| #endif |
| |
| // [alg.find.end], find end |
| using std::find_end; |
| |
| namespace ranges { |
| using std::ranges::find_end; |
| } |
| |
| // [alg.find.first.of], find first |
| using std::find_first_of; |
| |
| namespace ranges { |
| using std::ranges::find_first_of; |
| } |
| |
| // [alg.adjacent.find], adjacent find |
| using std::adjacent_find; |
| |
| namespace ranges { |
| using std::ranges::adjacent_find; |
| } |
| |
| // [alg.count], count |
| using std::count; |
| using std::count_if; |
| |
| namespace ranges { |
| using std::ranges::count; |
| using std::ranges::count_if; |
| } // namespace ranges |
| |
| // [mismatch], mismatch |
| using std::mismatch; |
| |
| namespace ranges { |
| using std::ranges::mismatch_result; |
| |
| using std::ranges::mismatch; |
| } // namespace ranges |
| |
| // [alg.equal], equal |
| using std::equal; |
| |
| namespace ranges { |
| using std::ranges::equal; |
| } |
| |
| // [alg.is.permutation], is permutation |
| using std::is_permutation; |
| |
| namespace ranges { |
| using std::ranges::is_permutation; |
| } |
| |
| // [alg.search], search |
| using std::search; |
| |
| namespace ranges { |
| using std::ranges::search; |
| } |
| |
| using std::search_n; |
| |
| namespace ranges { |
| using std::ranges::search_n; |
| } |
| |
| namespace ranges { |
| #if _LIBCPP_STD_VER >= 23 |
| // [alg.starts.with], starts with |
| using std::ranges::starts_with; |
| |
| // [alg.ends.with], ends with |
| using std::ranges::ends_with; |
| |
| // [alg.fold], fold |
| using std::ranges::fold_left; |
| using std::ranges::fold_left_with_iter; |
| using std::ranges::fold_left_with_iter_result; |
| # if 0 |
| using std::ranges::fold_left_first; |
| using std::ranges::fold_right; |
| using std::ranges::fold_right_last; |
| using std::ranges::fold_left_with_iter; |
| using std::ranges::fold_left_first_with_iter; |
| using std::ranges::fold_left_first_with_iter; |
| # endif |
| #endif // _LIBCPP_STD_VER >= 23 |
| } // namespace ranges |
| |
| // [alg.modifying.operations], mutating sequence operations |
| // [alg.copy], copy |
| using std::copy; |
| |
| namespace ranges { |
| using std::ranges::copy; |
| using std::ranges::copy_result; |
| } // namespace ranges |
| |
| using std::copy_n; |
| |
| namespace ranges { |
| using std::ranges::copy_n; |
| using std::ranges::copy_n_result; |
| } // namespace ranges |
| |
| using std::copy_if; |
| |
| namespace ranges { |
| using std::ranges::copy_if; |
| using std::ranges::copy_if_result; |
| } // namespace ranges |
| |
| using std::copy_backward; |
| |
| namespace ranges { |
| using std::ranges::copy_backward; |
| using std::ranges::copy_backward_result; |
| } // namespace ranges |
| |
| // [alg.move], move |
| using std::move; |
| |
| namespace ranges { |
| using std::ranges::move; |
| using std::ranges::move_result; |
| } // namespace ranges |
| |
| using std::move_backward; |
| |
| namespace ranges { |
| using std::ranges::move_backward; |
| using std::ranges::move_backward_result; |
| } // namespace ranges |
| |
| // [alg.swap], swap |
| using std::swap_ranges; |
| |
| namespace ranges { |
| using std::ranges::swap_ranges; |
| using std::ranges::swap_ranges_result; |
| } // namespace ranges |
| |
| using std::iter_swap; |
| |
| // [alg.transform], transform |
| using std::transform; |
| |
| namespace ranges { |
| using std::ranges::binary_transform_result; |
| using std::ranges::unary_transform_result; |
| |
| using std::ranges::transform; |
| |
| } // namespace ranges |
| |
| using std::replace; |
| using std::replace_if; |
| |
| namespace ranges { |
| using std::ranges::replace; |
| using std::ranges::replace_if; |
| } // namespace ranges |
| |
| using std::replace_copy; |
| using std::replace_copy_if; |
| |
| namespace ranges { |
| using std::ranges::replace_copy; |
| using std::ranges::replace_copy_if; |
| using std::ranges::replace_copy_if_result; |
| using std::ranges::replace_copy_result; |
| } // namespace ranges |
| |
| // [alg.fill], fill |
| using std::fill; |
| using std::fill_n; |
| |
| namespace ranges { |
| using std::ranges::fill; |
| using std::ranges::fill_n; |
| } // namespace ranges |
| |
| // [alg.generate], generate |
| using std::generate; |
| using std::generate_n; |
| |
| namespace ranges { |
| using std::ranges::generate; |
| using std::ranges::generate_n; |
| } // namespace ranges |
| |
| // [alg.remove], remove |
| using std::remove; |
| using std::remove_if; |
| |
| namespace ranges { |
| using std::ranges::remove; |
| using std::ranges::remove_if; |
| } // namespace ranges |
| |
| using std::remove_copy; |
| using std::remove_copy_if; |
| namespace ranges { |
| using std::ranges::remove_copy; |
| using std::ranges::remove_copy_if; |
| using std::ranges::remove_copy_if_result; |
| using std::ranges::remove_copy_result; |
| } // namespace ranges |
| |
| // [alg.unique], unique |
| using std::unique; |
| |
| namespace ranges { |
| using std::ranges::unique; |
| } |
| |
| using std::unique_copy; |
| |
| namespace ranges { |
| using std::ranges::unique_copy; |
| using std::ranges::unique_copy_result; |
| } // namespace ranges |
| |
| // [alg.reverse], reverse |
| using std::reverse; |
| |
| namespace ranges { |
| using std::ranges::reverse; |
| } |
| |
| using std::reverse_copy; |
| |
| namespace ranges { |
| using std::ranges::reverse_copy; |
| using std::ranges::reverse_copy_result; |
| } // namespace ranges |
| |
| // [alg.rotate], rotate |
| using std::rotate; |
| |
| namespace ranges { |
| using std::ranges::rotate; |
| } |
| |
| using std::rotate_copy; |
| |
| namespace ranges { |
| using std::ranges::rotate_copy; |
| using std::ranges::rotate_copy_result; |
| } // namespace ranges |
| |
| // [alg.random.sample], sample |
| using std::sample; |
| |
| namespace ranges { |
| using std::ranges::sample; |
| } |
| |
| // [alg.random.shuffle], shuffle |
| using std::shuffle; |
| |
| namespace ranges { |
| using std::ranges::shuffle; |
| } |
| |
| // [alg.shift], shift |
| using std::shift_left; |
| |
| namespace ranges { |
| // using std::ranges::shift_left; |
| } |
| |
| using std::shift_right; |
| |
| namespace ranges { |
| // using std::ranges::shift_right; |
| } |
| |
| // [alg.sorting], sorting and related operations |
| // [alg.sort], sorting |
| using std::sort; |
| |
| namespace ranges { |
| using std::ranges::sort; |
| } |
| |
| using std::stable_sort; |
| |
| namespace ranges { |
| using std::ranges::stable_sort; |
| } |
| |
| using std::partial_sort; |
| |
| namespace ranges { |
| using std::ranges::partial_sort; |
| } |
| using std::partial_sort_copy; |
| |
| namespace ranges { |
| using std::ranges::partial_sort_copy; |
| using std::ranges::partial_sort_copy_result; |
| } // namespace ranges |
| |
| using std::is_sorted; |
| using std::is_sorted_until; |
| |
| namespace ranges { |
| using std::ranges::is_sorted; |
| using std::ranges::is_sorted_until; |
| } // namespace ranges |
| |
| // [alg.nth.element], Nth element |
| using std::nth_element; |
| |
| namespace ranges { |
| using std::ranges::nth_element; |
| } |
| |
| // [alg.binary.search], binary search |
| using std::lower_bound; |
| |
| namespace ranges { |
| using std::ranges::lower_bound; |
| } |
| |
| using std::upper_bound; |
| |
| namespace ranges { |
| using std::ranges::upper_bound; |
| } |
| |
| using std::equal_range; |
| |
| namespace ranges { |
| using std::ranges::equal_range; |
| } |
| |
| using std::binary_search; |
| |
| namespace ranges { |
| using std::ranges::binary_search; |
| } |
| |
| // [alg.partitions], partitions |
| using std::is_partitioned; |
| |
| namespace ranges { |
| using std::ranges::is_partitioned; |
| } |
| |
| using std::partition; |
| |
| namespace ranges { |
| using std::ranges::partition; |
| } |
| |
| using std::stable_partition; |
| |
| namespace ranges { |
| using std::ranges::stable_partition; |
| } |
| |
| using std::partition_copy; |
| |
| namespace ranges { |
| using std::ranges::partition_copy; |
| using std::ranges::partition_copy_result; |
| } // namespace ranges |
| |
| using std::partition_point; |
| |
| namespace ranges { |
| using std::ranges::partition_point; |
| } |
| // [alg.merge], merge |
| using std::merge; |
| namespace ranges { |
| using std::ranges::merge; |
| using std::ranges::merge_result; |
| } // namespace ranges |
| |
| using std::inplace_merge; |
| |
| namespace ranges { |
| using std::ranges::inplace_merge; |
| } |
| |
| // [alg.set.operations], set operations |
| using std::includes; |
| namespace ranges { |
| using std::ranges::includes; |
| } |
| |
| using std::set_union; |
| |
| namespace ranges { |
| using std::ranges::set_union; |
| using std::ranges::set_union_result; |
| } // namespace ranges |
| |
| using std::set_intersection; |
| namespace ranges { |
| using std::ranges::set_intersection; |
| using std::ranges::set_intersection_result; |
| } // namespace ranges |
| |
| using std::set_difference; |
| |
| namespace ranges { |
| using std::ranges::set_difference; |
| using std::ranges::set_difference_result; |
| } // namespace ranges |
| |
| using std::set_symmetric_difference; |
| |
| namespace ranges { |
| using std::ranges::set_symmetric_difference_result; |
| |
| using std::ranges::set_symmetric_difference; |
| } // namespace ranges |
| |
| // [alg.heap.operations], heap operations |
| using std::push_heap; |
| |
| namespace ranges { |
| using std::ranges::push_heap; |
| } |
| |
| using std::pop_heap; |
| |
| namespace ranges { |
| using std::ranges::pop_heap; |
| } |
| |
| using std::make_heap; |
| |
| namespace ranges { |
| using std::ranges::make_heap; |
| } |
| |
| using std::sort_heap; |
| |
| namespace ranges { |
| using std::ranges::sort_heap; |
| } |
| |
| using std::is_heap; |
| |
| namespace ranges { |
| using std::ranges::is_heap; |
| } |
| |
| using std::is_heap_until; |
| |
| namespace ranges { |
| using std::ranges::is_heap_until; |
| } |
| |
| // [alg.min.max], minimum and maximum |
| using std::min; |
| |
| namespace ranges { |
| using std::ranges::min; |
| } |
| |
| using std::max; |
| |
| namespace ranges { |
| using std::ranges::max; |
| } |
| |
| using std::minmax; |
| |
| namespace ranges { |
| using std::ranges::minmax_result; |
| |
| using std::ranges::minmax; |
| } // namespace ranges |
| |
| using std::min_element; |
| |
| namespace ranges { |
| using std::ranges::min_element; |
| } |
| |
| using std::max_element; |
| |
| namespace ranges { |
| using std::ranges::max_element; |
| } |
| |
| using std::minmax_element; |
| |
| namespace ranges { |
| using std::ranges::minmax_element_result; |
| |
| using std::ranges::minmax_element; |
| } // namespace ranges |
| // [alg.clamp], bounded value |
| using std::clamp; |
| |
| namespace ranges { |
| using std::ranges::clamp; |
| } |
| |
| // [alg.lex.comparison], lexicographical comparison |
| using std::lexicographical_compare; |
| |
| namespace ranges { |
| using std::ranges::lexicographical_compare; |
| } |
| |
| // [alg.three.way], three-way comparison algorithms |
| using std::lexicographical_compare_three_way; |
| |
| // [alg.permutation.generators], permutations |
| using std::next_permutation; |
| |
| namespace ranges { |
| using std::ranges::next_permutation_result; |
| |
| using std::ranges::next_permutation; |
| } // namespace ranges |
| |
| using std::prev_permutation; |
| |
| namespace ranges { |
| using std::ranges::prev_permutation_result; |
| |
| using std::ranges::prev_permutation; |
| } // namespace ranges |
| |
| } // namespace std |