0

Convert base::ranges::{begin,end} usage to std::ranges::{begin,end}

The //base implementation uses base::priority_tag, which is infrequently
used and is slated for removal. The STL helpers are drop-in
replacements.

Bug: 337356049
Change-Id: I4cdd6d8487cb8addb51ba270dcfaf9f5a87d6f4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5494910
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Owners-Override: danakj <danakj@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1323329}
This commit is contained in:
Daniel Cheng
2024-07-04 14:09:17 +00:00
committed by Chromium LUCI CQ
parent 2132a8414a
commit a565e82bd7
11 changed files with 240 additions and 190 deletions
base
chrome/browser/ash/app_list/app_service
components
remoting/host
services
network
public
cpp
supports_loading_mode
screen_ai
sql

@ -5,10 +5,12 @@
#ifndef BASE_CONTAINERS_CONTAINS_H_
#define BASE_CONTAINERS_CONTAINS_H_
#include <ranges>
#include <type_traits>
#include <utility>
#include "base/ranges/algorithm.h"
// TODO(dcheng): Remove this after fixing any IWYU errors.
#include "base/ranges/ranges.h"
namespace base {
@ -41,7 +43,7 @@ constexpr bool Contains(const Container& container, const Value& value) {
"Error: About to perform linear search on an associative container. "
"Either use a more generic comparator (e.g. std::less<>) or, if a "
"linear search is desired, provide an explicit projection parameter.");
return ranges::find(container, value) != ranges::end(container);
return ranges::find(container, value) != std::ranges::end(container);
}
}
@ -53,7 +55,7 @@ constexpr bool Contains(const Container& container,
const Value& value,
Proj proj) {
return ranges::find(container, value, std::move(proj)) !=
ranges::end(container);
std::ranges::end(container);
}
} // namespace base

@ -16,6 +16,7 @@
#include <functional>
#include <initializer_list>
#include <iterator>
#include <ranges>
#include <type_traits>
#include <utility>
@ -43,7 +44,8 @@ constexpr bool is_sorted_and_unique(const Range& range, Comp comp) {
// Being unique implies that there are no adjacent elements that
// compare equal. So this checks that each element is strictly less
// than the element after it.
return ranges::adjacent_find(range, std::not_fn(comp)) == ranges::end(range);
return ranges::adjacent_find(range, std::not_fn(comp)) ==
std::ranges::end(range);
}
// Helper inspired by C++20's std::to_array to convert a C-style array to a
@ -539,7 +541,7 @@ template <class Key, class GetKeyFromValue, class KeyCompare, class Container>
flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::flat_tree(
std::initializer_list<value_type> ilist,
const KeyCompare& comp)
: flat_tree(std::begin(ilist), std::end(ilist), comp) {}
: flat_tree(std::ranges::begin(ilist), std::ranges::end(ilist), comp) {}
template <class Key, class GetKeyFromValue, class KeyCompare, class Container>
template <class InputIterator>
@ -575,7 +577,10 @@ flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::flat_tree(
sorted_unique_t,
std::initializer_list<value_type> ilist,
const KeyCompare& comp)
: flat_tree(sorted_unique, std::begin(ilist), std::end(ilist), comp) {}
: flat_tree(sorted_unique,
std::ranges::begin(ilist),
std::ranges::end(ilist),
comp) {}
// ----------------------------------------------------------------------------
// Assignments.
@ -647,7 +652,7 @@ auto flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::begin()
template <class Key, class GetKeyFromValue, class KeyCompare, class Container>
constexpr auto flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::begin()
const -> const_iterator {
return ranges::begin(body_);
return std::ranges::begin(body_);
}
template <class Key, class GetKeyFromValue, class KeyCompare, class Container>
@ -664,7 +669,7 @@ auto flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::end() -> iterator {
template <class Key, class GetKeyFromValue, class KeyCompare, class Container>
constexpr auto flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::end()
const -> const_iterator {
return ranges::end(body_);
return std::ranges::end(body_);
}
template <class Key, class GetKeyFromValue, class KeyCompare, class Container>

@ -14,6 +14,7 @@
#include <functional>
#include <initializer_list>
#include <iterator>
#include <ranges>
#include <type_traits>
#include <utility>
@ -233,7 +234,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr bool all_of(Range&& range, Pred pred, Proj proj = {}) {
return ranges::all_of(ranges::begin(range), ranges::end(range),
return ranges::all_of(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -280,7 +281,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr bool any_of(Range&& range, Pred pred, Proj proj = {}) {
return ranges::any_of(ranges::begin(range), ranges::end(range),
return ranges::any_of(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -327,7 +328,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr bool none_of(Range&& range, Pred pred, Proj proj = {}) {
return ranges::none_of(ranges::begin(range), ranges::end(range),
return ranges::none_of(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -377,7 +378,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto for_each(Range&& range, Fun f, Proj proj = {}) {
return ranges::for_each(ranges::begin(range), ranges::end(range),
return ranges::for_each(std::ranges::begin(range), std::ranges::end(range),
std::move(f), std::move(proj));
}
@ -453,7 +454,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto find(Range&& range, const T& value, Proj proj = {}) {
return ranges::find(ranges::begin(range), ranges::end(range), value,
return ranges::find(std::ranges::begin(range), std::ranges::end(range), value,
std::move(proj));
}
@ -492,7 +493,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto find_if(Range&& range, Pred pred, Proj proj = {}) {
return ranges::find_if(ranges::begin(range), ranges::end(range),
return ranges::find_if(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -531,7 +532,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto find_if_not(Range&& range, Pred pred, Proj proj = {}) {
return ranges::find_if_not(ranges::begin(range), ranges::end(range),
return ranges::find_if_not(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -613,8 +614,8 @@ constexpr auto find_end(Range1&& range1,
Pred pred = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::find_end(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
return ranges::find_end(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
std::move(pred), std::move(proj1), std::move(proj2));
}
@ -687,8 +688,9 @@ constexpr auto find_first_of(Range1&& range1,
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::find_first_of(
ranges::begin(range1), ranges::end(range1), ranges::begin(range2),
ranges::end(range2), std::move(pred), std::move(proj1), std::move(proj2));
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), std::move(pred),
std::move(proj1), std::move(proj2));
}
// [alg.adjacent.find] Adjacent find
@ -749,8 +751,9 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto adjacent_find(Range&& range, Pred pred = {}, Proj proj = {}) {
return ranges::adjacent_find(ranges::begin(range), ranges::end(range),
std::move(pred), std::move(proj));
return ranges::adjacent_find(std::ranges::begin(range),
std::ranges::end(range), std::move(pred),
std::move(proj));
}
// [alg.count] Count
@ -794,8 +797,8 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto count(Range&& range, const T& value, Proj proj = {}) {
return ranges::count(ranges::begin(range), ranges::end(range), value,
std::move(proj));
return ranges::count(std::ranges::begin(range), std::ranges::end(range),
value, std::move(proj));
}
// Let `E(i)` be `bool(invoke(pred, invoke(proj, *i)))`.
@ -833,7 +836,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto count_if(Range&& range, Pred pred, Proj proj = {}) {
return ranges::count_if(ranges::begin(range), ranges::end(range),
return ranges::count_if(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -903,8 +906,8 @@ constexpr auto mismatch(Range1&& range1,
Pred pred = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::mismatch(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
return ranges::mismatch(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
std::move(pred), std::move(proj1), std::move(proj2));
}
@ -990,8 +993,8 @@ constexpr bool equal(Range1&& range1,
Pred pred = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::equal(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
return ranges::equal(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
std::move(pred), std::move(proj1), std::move(proj2));
}
@ -1071,8 +1074,9 @@ constexpr bool is_permutation(Range1&& range1,
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::is_permutation(
ranges::begin(range1), ranges::end(range1), ranges::begin(range2),
ranges::end(range2), std::move(pred), std::move(proj1), std::move(proj2));
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), std::move(pred),
std::move(proj1), std::move(proj2));
}
// [alg.search] Search
@ -1142,8 +1146,8 @@ constexpr auto search(Range1&& range1,
Pred pred = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::search(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
return ranges::search(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
std::move(pred), std::move(proj1), std::move(proj2));
}
@ -1206,8 +1210,8 @@ constexpr auto search_n(Range&& range,
const T& value,
Pred pred = {},
Proj proj = {}) {
return ranges::search_n(ranges::begin(range), ranges::end(range), count,
value, std::move(pred), std::move(proj));
return ranges::search_n(std::ranges::begin(range), std::ranges::end(range),
count, value, std::move(pred), std::move(proj));
}
// [alg.modifying.operations] Mutating sequence operations
@ -1258,7 +1262,8 @@ template <typename Range,
typename = internal::range_category_t<Range>,
typename = internal::iterator_category_t<OutputIterator>>
constexpr auto copy(Range&& range, OutputIterator result) {
return ranges::copy(ranges::begin(range), ranges::end(range), result);
return ranges::copy(std::ranges::begin(range), std::ranges::end(range),
result);
}
// Let `N` be `max(0, n)`.
@ -1341,8 +1346,8 @@ constexpr auto copy_if(Range&& range,
OutputIterator result,
Pred pred,
Proj proj = {}) {
return ranges::copy_if(ranges::begin(range), ranges::end(range), result,
std::move(pred), std::move(proj));
return ranges::copy_if(std::ranges::begin(range), std::ranges::end(range),
result, std::move(pred), std::move(proj));
}
// Let `N` be `last - first`.
@ -1386,8 +1391,8 @@ template <typename Range,
typename = internal::range_category_t<Range>,
typename = internal::iterator_category_t<BidirectionalIterator>>
constexpr auto copy_backward(Range&& range, BidirectionalIterator result) {
return ranges::copy_backward(ranges::begin(range), ranges::end(range),
result);
return ranges::copy_backward(std::ranges::begin(range),
std::ranges::end(range), result);
}
// [alg.move] Move
@ -1438,7 +1443,8 @@ template <typename Range,
typename = internal::range_category_t<Range>,
typename = internal::iterator_category_t<OutputIterator>>
constexpr auto move(Range&& range, OutputIterator result) {
return ranges::move(ranges::begin(range), ranges::end(range), result);
return ranges::move(std::ranges::begin(range), std::ranges::end(range),
result);
}
// Let `E(n)` be `std::move(*(last - n))`.
@ -1486,8 +1492,8 @@ template <typename Range,
typename = internal::range_category_t<Range>,
typename = internal::iterator_category_t<BidirectionalIterator>>
constexpr auto move_backward(Range&& range, BidirectionalIterator result) {
return ranges::move_backward(ranges::begin(range), ranges::end(range),
result);
return ranges::move_backward(std::ranges::begin(range),
std::ranges::end(range), result);
}
// [alg.swap] Swap
@ -1539,8 +1545,9 @@ template <typename Range1,
typename = internal::range_category_t<Range1>,
typename = internal::range_category_t<Range2>>
constexpr auto swap_ranges(Range1&& range1, Range2&& range2) {
return ranges::swap_ranges(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2));
return ranges::swap_ranges(
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2));
}
// [alg.transform] Transform
@ -1611,8 +1618,8 @@ constexpr auto transform(Range&& range,
OutputIterator result,
UnaryOperation op,
Proj proj = {}) {
return ranges::transform(ranges::begin(range), ranges::end(range), result,
std::move(op), std::move(proj));
return ranges::transform(std::ranges::begin(range), std::ranges::end(range),
result, std::move(op), std::move(proj));
}
// Let:
@ -1706,9 +1713,9 @@ constexpr auto transform(Range1&& range1,
BinaryOperation binary_op,
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::transform(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2), result,
std::move(binary_op), std::move(proj1),
return ranges::transform(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
result, std::move(binary_op), std::move(proj1),
std::move(proj2));
}
@ -1769,8 +1776,8 @@ constexpr auto replace(Range&& range,
const T& old_value,
const T& new_value,
Proj proj = {}) {
return ranges::replace(ranges::begin(range), ranges::end(range), old_value,
new_value, std::move(proj));
return ranges::replace(std::ranges::begin(range), std::ranges::end(range),
old_value, new_value, std::move(proj));
}
// Let `E(i)` be `bool(invoke(pred, invoke(proj, *i)))`.
@ -1823,7 +1830,7 @@ constexpr auto replace_if(Range&& range,
Predicate pred,
const T& new_value,
Proj proj = {}) {
return ranges::replace_if(ranges::begin(range), ranges::end(range),
return ranges::replace_if(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), new_value, std::move(proj));
}
@ -1898,8 +1905,9 @@ constexpr auto replace_copy(Range&& range,
const T& old_value,
const T& new_value,
Proj proj = {}) {
return ranges::replace_copy(ranges::begin(range), ranges::end(range), result,
old_value, new_value, std::move(proj));
return ranges::replace_copy(std::ranges::begin(range),
std::ranges::end(range), result, old_value,
new_value, std::move(proj));
}
// Let `E(i)` be `bool(invoke(pred, invoke(proj, *(first + (i - result)))))`.
@ -1969,8 +1977,9 @@ constexpr auto replace_copy_if(Range&& range,
Predicate pred,
const T& new_value,
Proj proj = {}) {
return ranges::replace_copy_if(ranges::begin(range), ranges::end(range),
result, pred, new_value, std::move(proj));
return ranges::replace_copy_if(std::ranges::begin(range),
std::ranges::end(range), result, pred,
new_value, std::move(proj));
}
// [alg.fill] Fill
@ -2011,7 +2020,8 @@ template <typename Range,
typename T,
typename = internal::range_category_t<Range>>
constexpr auto fill(Range&& range, const T& value) {
return ranges::fill(ranges::begin(range), ranges::end(range), value);
return ranges::fill(std::ranges::begin(range), std::ranges::end(range),
value);
}
// Let `N` be `max(0, n)`.
@ -2071,7 +2081,7 @@ template <typename Range,
typename Generator,
typename = internal::range_category_t<Range>>
constexpr auto generate(Range&& range, Generator gen) {
return ranges::generate(ranges::begin(range), ranges::end(range),
return ranges::generate(std::ranges::begin(range), std::ranges::end(range),
std::move(gen));
}
@ -2144,8 +2154,8 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto remove(Range&& range, const T& value, Proj proj = {}) {
return ranges::remove(ranges::begin(range), ranges::end(range), value,
std::move(proj));
return ranges::remove(std::ranges::begin(range), std::ranges::end(range),
value, std::move(proj));
}
// Let `E(i)` be `bool(invoke(pred, invoke(proj, *i)))`.
@ -2190,7 +2200,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto remove_if(Range&& range, Predicate pred, Proj proj = {}) {
return ranges::remove_if(ranges::begin(range), ranges::end(range),
return ranges::remove_if(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -2263,8 +2273,8 @@ constexpr auto remove_copy(Range&& range,
OutputIterator result,
const T& value,
Proj proj = {}) {
return ranges::remove_copy(ranges::begin(range), ranges::end(range), result,
value, std::move(proj));
return ranges::remove_copy(std::ranges::begin(range), std::ranges::end(range),
result, value, std::move(proj));
}
// Let `E(i)` be `bool(invoke(pred, invoke(proj, *i)))`.
@ -2333,8 +2343,9 @@ constexpr auto remove_copy_if(Range&& range,
OutputIterator result,
Pred pred,
Proj proj = {}) {
return ranges::remove_copy_if(ranges::begin(range), ranges::end(range),
result, std::move(pred), std::move(proj));
return ranges::remove_copy_if(std::ranges::begin(range),
std::ranges::end(range), result,
std::move(pred), std::move(proj));
}
// [alg.unique] Unique
@ -2391,7 +2402,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto unique(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::unique(ranges::begin(range), ranges::end(range),
return ranges::unique(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -2453,8 +2464,8 @@ constexpr auto unique_copy(Range&& range,
OutputIterator result,
Comp comp = {},
Proj proj = {}) {
return ranges::unique_copy(ranges::begin(range), ranges::end(range), result,
std::move(comp), std::move(proj));
return ranges::unique_copy(std::ranges::begin(range), std::ranges::end(range),
result, std::move(comp), std::move(proj));
}
// [alg.reverse] Reverse
@ -2487,7 +2498,7 @@ constexpr auto reverse(BidirectionalIterator first,
// Reference: https://wg21.link/alg.reverse#:~:text=ranges::reverse(R
template <typename Range, typename = internal::range_category_t<Range>>
constexpr auto reverse(Range&& range) {
return ranges::reverse(ranges::begin(range), ranges::end(range));
return ranges::reverse(std::ranges::begin(range), std::ranges::end(range));
}
// Let `N` be `last - first`.
@ -2533,7 +2544,8 @@ template <typename Range,
typename = internal::range_category_t<Range>,
typename = internal::iterator_category_t<OutputIterator>>
constexpr auto reverse_copy(Range&& range, OutputIterator result) {
return ranges::reverse_copy(ranges::begin(range), ranges::end(range), result);
return ranges::reverse_copy(std::ranges::begin(range),
std::ranges::end(range), result);
}
// [alg.rotate] Rotate
@ -2572,7 +2584,8 @@ constexpr auto rotate(ForwardIterator first,
// Reference: https://wg21.link/alg.rotate#:~:text=ranges::rotate(R
template <typename Range, typename = internal::range_category_t<Range>>
constexpr auto rotate(Range&& range, iterator_t<Range> middle) {
return ranges::rotate(ranges::begin(range), middle, ranges::end(range));
return ranges::rotate(std::ranges::begin(range), middle,
std::ranges::end(range));
}
// Let `N` be `last - first`.
@ -2621,8 +2634,8 @@ template <typename Range,
constexpr auto rotate_copy(Range&& range,
iterator_t<Range> middle,
OutputIterator result) {
return ranges::rotate_copy(ranges::begin(range), middle, ranges::end(range),
result);
return ranges::rotate_copy(std::ranges::begin(range), middle,
std::ranges::end(range), result);
}
// [alg.random.sample] Sample
@ -2678,7 +2691,7 @@ template <typename Range,
typename UniformRandomBitGenerator,
typename = internal::range_category_t<Range>>
constexpr auto shuffle(Range&& range, UniformRandomBitGenerator&& g) {
return ranges::shuffle(ranges::begin(range), ranges::end(range),
return ranges::shuffle(std::ranges::begin(range), std::ranges::end(range),
std::forward<UniformRandomBitGenerator>(g));
}
@ -2733,8 +2746,8 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto sort(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::sort(ranges::begin(range), ranges::end(range), std::move(comp),
std::move(proj));
return ranges::sort(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
// [stable.sort] stable_sort
@ -2789,7 +2802,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto stable_sort(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::stable_sort(ranges::begin(range), ranges::end(range),
return ranges::stable_sort(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -2853,8 +2866,9 @@ constexpr auto partial_sort(Range&& range,
iterator_t<Range> middle,
Comp comp = {},
Proj proj = {}) {
return ranges::partial_sort(ranges::begin(range), middle, ranges::end(range),
std::move(comp), std::move(proj));
return ranges::partial_sort(std::ranges::begin(range), middle,
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// [partial.sort.copy] partial_sort_copy
@ -2948,10 +2962,10 @@ constexpr auto partial_sort_copy(Range1&& range,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::partial_sort_copy(ranges::begin(range), ranges::end(range),
ranges::begin(result_range),
ranges::end(result_range), std::move(comp),
std::move(proj1), std::move(proj2));
return ranges::partial_sort_copy(
std::ranges::begin(range), std::ranges::end(range),
std::ranges::begin(result_range), std::ranges::end(result_range),
std::move(comp), std::move(proj1), std::move(proj2));
}
// [is.sorted] is_sorted
@ -3009,8 +3023,9 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto is_sorted_until(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::is_sorted_until(ranges::begin(range), ranges::end(range),
std::move(comp), std::move(proj));
return ranges::is_sorted_until(std::ranges::begin(range),
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// Returns: Whether the range `[first, last)` is sorted with respect to `comp`
@ -3049,7 +3064,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto is_sorted(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::is_sorted(ranges::begin(range), ranges::end(range),
return ranges::is_sorted(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -3115,8 +3130,9 @@ constexpr auto nth_element(Range&& range,
iterator_t<Range> nth,
Comp comp = {},
Proj proj = {}) {
return ranges::nth_element(ranges::begin(range), nth, ranges::end(range),
std::move(comp), std::move(proj));
return ranges::nth_element(std::ranges::begin(range), nth,
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// [alg.binary.search] Binary search
@ -3172,8 +3188,8 @@ constexpr auto lower_bound(Range&& range,
const T& value,
Comp comp = {},
Proj proj = {}) {
return ranges::lower_bound(ranges::begin(range), ranges::end(range), value,
std::move(comp), std::move(proj));
return ranges::lower_bound(std::ranges::begin(range), std::ranges::end(range),
value, std::move(comp), std::move(proj));
}
// [upper.bound] upper_bound
@ -3226,8 +3242,8 @@ constexpr auto upper_bound(Range&& range,
const T& value,
Comp comp = {},
Proj proj = {}) {
return ranges::upper_bound(ranges::begin(range), ranges::end(range), value,
std::move(comp), std::move(proj));
return ranges::upper_bound(std::ranges::begin(range), std::ranges::end(range),
value, std::move(comp), std::move(proj));
}
// [equal.range] equal_range
@ -3281,8 +3297,8 @@ constexpr auto equal_range(Range&& range,
const T& value,
Comp comp = {},
Proj proj = {}) {
return ranges::equal_range(ranges::begin(range), ranges::end(range), value,
std::move(comp), std::move(proj));
return ranges::equal_range(std::ranges::begin(range), std::ranges::end(range),
value, std::move(comp), std::move(proj));
}
// [binary.search] binary_search
@ -3333,8 +3349,9 @@ constexpr auto binary_search(Range&& range,
const T& value,
Comp comp = {},
Proj proj = {}) {
return ranges::binary_search(ranges::begin(range), ranges::end(range), value,
std::move(comp), std::move(proj));
return ranges::binary_search(std::ranges::begin(range),
std::ranges::end(range), value, std::move(comp),
std::move(proj));
}
// [alg.partitions] Partitions
@ -3370,8 +3387,9 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto is_partitioned(Range&& range, Pred pred, Proj proj = {}) {
return ranges::is_partitioned(ranges::begin(range), ranges::end(range),
std::move(pred), std::move(proj));
return ranges::is_partitioned(std::ranges::begin(range),
std::ranges::end(range), std::move(pred),
std::move(proj));
}
// Let `E(x)` be `bool(invoke(pred, invoke(proj, x)))`.
@ -3421,7 +3439,7 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto partition(Range&& range, Pred pred, Proj proj = {}) {
return ranges::partition(ranges::begin(range), ranges::end(range),
return ranges::partition(std::ranges::begin(range), std::ranges::end(range),
std::move(pred), std::move(proj));
}
@ -3474,8 +3492,9 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto stable_partition(Range&& range, Pred pred, Proj proj = {}) {
return ranges::stable_partition(ranges::begin(range), ranges::end(range),
std::move(pred), std::move(proj));
return ranges::stable_partition(std::ranges::begin(range),
std::ranges::end(range), std::move(pred),
std::move(proj));
}
// Let `E(x)` be `bool(invoke(pred, invoke(proj, x)))`.
@ -3544,9 +3563,9 @@ constexpr auto partition_copy(Range&& range,
OutputIterator2 out_false,
Pred pred,
Proj proj = {}) {
return ranges::partition_copy(ranges::begin(range), ranges::end(range),
out_true, out_false, std::move(pred),
std::move(proj));
return ranges::partition_copy(std::ranges::begin(range),
std::ranges::end(range), out_true, out_false,
std::move(pred), std::move(proj));
}
// let `E(x)` be `bool(invoke(pred, invoke(proj, x)))`.
@ -3589,8 +3608,9 @@ template <typename Range,
typename Proj = std::identity,
typename = internal::range_category_t<Range>>
constexpr auto partition_point(Range&& range, Pred pred, Proj proj = {}) {
return ranges::partition_point(ranges::begin(range), ranges::end(range),
std::move(pred), std::move(proj));
return ranges::partition_point(std::ranges::begin(range),
std::ranges::end(range), std::move(pred),
std::move(proj));
}
// [alg.merge] Merge
@ -3691,9 +3711,10 @@ constexpr auto merge(Range1&& range1,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::merge(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2), result,
std::move(comp), std::move(proj1), std::move(proj2));
return ranges::merge(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
result, std::move(comp), std::move(proj1),
std::move(proj2));
}
// Preconditions: `[first, middle)` and `[middle, last)` are valid ranges sorted
@ -3751,8 +3772,9 @@ constexpr auto inplace_merge(Range&& range,
iterator_t<Range> middle,
Comp comp = {},
Proj proj = {}) {
return ranges::inplace_merge(ranges::begin(range), middle, ranges::end(range),
std::move(comp), std::move(proj));
return ranges::inplace_merge(std::ranges::begin(range), middle,
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// [alg.set.operations] Set operations on sorted structures
@ -3830,8 +3852,8 @@ constexpr auto includes(Range1&& range1,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::includes(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
return ranges::includes(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
std::move(comp), std::move(proj1), std::move(proj2));
}
@ -3930,9 +3952,10 @@ constexpr auto set_union(Range1&& range1,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::set_union(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2), result,
std::move(comp), std::move(proj1), std::move(proj2));
return ranges::set_union(std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2),
result, std::move(comp), std::move(proj1),
std::move(proj2));
}
// [set.intersection] set_intersection
@ -4030,10 +4053,10 @@ constexpr auto set_intersection(Range1&& range1,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::set_intersection(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
result, std::move(comp), std::move(proj1),
std::move(proj2));
return ranges::set_intersection(
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), result,
std::move(comp), std::move(proj1), std::move(proj2));
}
// [set.difference] set_difference
@ -4133,10 +4156,10 @@ constexpr auto set_difference(Range1&& range1,
Comp comp = {},
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::set_difference(ranges::begin(range1), ranges::end(range1),
ranges::begin(range2), ranges::end(range2),
result, std::move(comp), std::move(proj1),
std::move(proj2));
return ranges::set_difference(
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), result,
std::move(comp), std::move(proj1), std::move(proj2));
}
// [set.symmetric.difference] set_symmetric_difference
@ -4244,9 +4267,9 @@ constexpr auto set_symmetric_difference(Range1&& range1,
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::set_symmetric_difference(
ranges::begin(range1), ranges::end(range1), ranges::begin(range2),
ranges::end(range2), result, std::move(comp), std::move(proj1),
std::move(proj2));
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), result,
std::move(comp), std::move(proj1), std::move(proj2));
}
// [alg.heap.operations] Heap operations
@ -4305,7 +4328,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto push_heap(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::push_heap(ranges::begin(range), ranges::end(range),
return ranges::push_heap(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4364,7 +4387,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto pop_heap(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::pop_heap(ranges::begin(range), ranges::end(range),
return ranges::pop_heap(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4414,7 +4437,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto make_heap(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::make_heap(ranges::begin(range), ranges::end(range),
return ranges::make_heap(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4470,7 +4493,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto sort_heap(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::sort_heap(ranges::begin(range), ranges::end(range),
return ranges::sort_heap(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4513,7 +4536,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto is_heap(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::is_heap(ranges::begin(range), ranges::end(range),
return ranges::is_heap(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4554,8 +4577,9 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto is_heap_until(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::is_heap_until(ranges::begin(range), ranges::end(range),
std::move(comp), std::move(proj));
return ranges::is_heap_until(std::ranges::begin(range),
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// [alg.min.max] Minimum and maximum
@ -4610,7 +4634,7 @@ template <typename Range,
typename = internal::range_category_t<Range>>
constexpr auto min(Range&& range, Comp comp = {}, Proj proj = {}) {
return *std::min_element(
ranges::begin(range), ranges::end(range),
std::ranges::begin(range), std::ranges::end(range),
internal::ProjectedBinaryPredicate(comp, proj, proj));
}
@ -4663,7 +4687,7 @@ template <typename Range,
typename = internal::range_category_t<Range>>
constexpr auto max(Range&& range, Comp comp = {}, Proj proj = {}) {
return *std::max_element(
ranges::begin(range), ranges::end(range),
std::ranges::begin(range), std::ranges::end(range),
internal::ProjectedBinaryPredicate(comp, proj, proj));
}
@ -4699,7 +4723,7 @@ constexpr auto minmax(std::initializer_list<T> ilist,
Comp comp = {},
Proj proj = {}) {
auto it =
std::minmax_element(ranges::begin(ilist), ranges::end(ilist),
std::minmax_element(std::ranges::begin(ilist), std::ranges::end(ilist),
internal::ProjectedBinaryPredicate(comp, proj, proj));
return std::pair<T, T>{*it.first, *it.second};
}
@ -4721,7 +4745,7 @@ template <typename Range,
constexpr auto minmax(Range&& range, Comp comp = {}, Proj proj = {}) {
using T = range_value_t<Range>;
auto it =
std::minmax_element(ranges::begin(range), ranges::end(range),
std::minmax_element(std::ranges::begin(range), std::ranges::end(range),
internal::ProjectedBinaryPredicate(comp, proj, proj));
return std::pair<T, T>{*it.first, *it.second};
}
@ -4768,7 +4792,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto min_element(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::min_element(ranges::begin(range), ranges::end(range),
return ranges::min_element(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4814,7 +4838,7 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto max_element(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::max_element(ranges::begin(range), ranges::end(range),
return ranges::max_element(std::ranges::begin(range), std::ranges::end(range),
std::move(comp), std::move(proj));
}
@ -4864,8 +4888,9 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto minmax_element(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::minmax_element(ranges::begin(range), ranges::end(range),
std::move(comp), std::move(proj));
return ranges::minmax_element(std::ranges::begin(range),
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// [alg.clamp] Bounded value
@ -4992,8 +5017,9 @@ constexpr bool lexicographical_compare(Range1&& range1,
Proj1 proj1 = {},
Proj2 proj2 = {}) {
return ranges::lexicographical_compare(
ranges::begin(range1), ranges::end(range1), ranges::begin(range2),
ranges::end(range2), std::move(comp), std::move(proj1), std::move(proj2));
std::ranges::begin(range1), std::ranges::end(range1),
std::ranges::begin(range2), std::ranges::end(range2), std::move(comp),
std::move(proj1), std::move(proj2));
}
// [alg.permutation.generators] Permutation generators
@ -5048,8 +5074,9 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto next_permutation(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::next_permutation(ranges::begin(range), ranges::end(range),
std::move(comp), std::move(proj));
return ranges::next_permutation(std::ranges::begin(range),
std::ranges::end(range), std::move(comp),
std::move(proj));
}
// Effects: Takes a sequence defined by the range `[first, last)` and transforms
@ -5101,8 +5128,9 @@ template <
std::projected<iterator_t<Range>, Proj>,
std::projected<iterator_t<Range>, Proj>>>
constexpr auto prev_permutation(Range&& range, Comp comp = {}, Proj proj = {}) {
return ranges::prev_permutation(ranges::begin(range), ranges::end(range),
std::move(comp), std::move(proj));
return ranges::prev_permutation(std::ranges::begin(range),
std::ranges::end(range), std::move(comp),
std::move(proj));
}
} // namespace ranges

@ -14,6 +14,7 @@
#include <initializer_list>
#include <iterator>
#include <random>
#include <ranges>
#include <utility>
#include "base/ranges/functional.h"
@ -111,9 +112,9 @@ TEST(RangesTest, AllOf) {
static_assert(!ranges::all_of(array, is_non_zero), "");
constexpr Int values[] = {0, 2, 4, 5};
static_assert(
ranges::all_of(values + 1, ranges::end(values), is_non_zero, &Int::value),
"");
static_assert(ranges::all_of(values + 1, std::ranges::end(values),
is_non_zero, &Int::value),
"");
static_assert(!ranges::all_of(values, is_non_zero, &Int::value), "");
}
@ -124,9 +125,9 @@ TEST(RangesTest, AnyOf) {
static_assert(ranges::any_of(array, is_even), "");
constexpr Int values[] = {{0}, {2}, {4}, {5}};
static_assert(
!ranges::any_of(values + 3, ranges::end(values), is_even, &Int::value),
"");
static_assert(!ranges::any_of(values + 3, std::ranges::end(values), is_even,
&Int::value),
"");
static_assert(ranges::any_of(values, is_even, &Int::value), "");
}
@ -142,9 +143,9 @@ TEST(RangesTest, NoneOf) {
static_assert(!ranges::none_of(array, is_zero), "");
constexpr Int values[] = {{0}, {2}, {4}, {5}};
static_assert(
ranges::none_of(values + 1, ranges::end(values), is_zero, &Int::value),
"");
static_assert(ranges::none_of(values + 1, std::ranges::end(values), is_zero,
&Int::value),
"");
static_assert(!ranges::none_of(values, is_zero, &Int::value), "");
}
@ -210,8 +211,8 @@ TEST(RangesTest, Find) {
constexpr Int values[] = {{0}, {2}, {4}, {5}};
static_assert(values == ranges::find(values, values, 0, &Int::value), "");
static_assert(ranges::end(values) == ranges::find(values, 3, &Int::value),
"");
static_assert(
std::ranges::end(values) == ranges::find(values, 3, &Int::value), "");
}
TEST(RangesTest, FindIf) {
@ -246,19 +247,20 @@ TEST(RangesTest, FindEnd) {
int array3[] = {0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4,
0, 1, 2, 3, 0, 1, 2, 0, 1, 0};
EXPECT_EQ(array3 + 15, ranges::find_end(array3, ranges::end(array3), array1,
ranges::end(array1)));
EXPECT_EQ(ranges::end(array3), ranges::find_end(array3, ranges::end(array3),
array2, ranges::end(array2)));
EXPECT_EQ(array3 + 4,
ranges::find_end(array3, ranges::end(array3), array2, array2 + 2));
EXPECT_EQ(array3 + 15, ranges::find_end(array3, std::ranges::end(array3),
array1, std::ranges::end(array1)));
EXPECT_EQ(std::ranges::end(array3),
ranges::find_end(array3, std::ranges::end(array3), array2,
std::ranges::end(array2)));
EXPECT_EQ(array3 + 4, ranges::find_end(array3, std::ranges::end(array3),
array2, array2 + 2));
Int ints1[] = {{0}, {1}, {2}};
Int ints2[] = {{4}, {5}, {6}};
EXPECT_EQ(array3 + 15, ranges::find_end(array3, ints1, ranges::equal_to{},
std::identity{}, &Int::value));
EXPECT_EQ(ranges::end(array3),
EXPECT_EQ(std::ranges::end(array3),
ranges::find_end(array3, ints2, ranges::equal_to{}, std::identity{},
&Int::value));
}
@ -268,33 +270,34 @@ TEST(RangesTest, FindFirstOf) {
int array2[] = {7, 8, 9};
int array3[] = {0, 1, 2, 3, 4, 5, 0, 1, 2, 3};
EXPECT_EQ(array3 + 1, ranges::find_first_of(array3, ranges::end(array3),
array1, ranges::end(array1)));
EXPECT_EQ(ranges::end(array3),
ranges::find_first_of(array3, ranges::end(array3), array2,
ranges::end(array2)));
EXPECT_EQ(array3 + 1,
ranges::find_first_of(array3, std::ranges::end(array3), array1,
std::ranges::end(array1)));
EXPECT_EQ(std::ranges::end(array3),
ranges::find_first_of(array3, std::ranges::end(array3), array2,
std::ranges::end(array2)));
Int ints1[] = {{1}, {2}, {3}};
Int ints2[] = {{7}, {8}, {9}};
EXPECT_EQ(array3 + 1, ranges::find_first_of(array3, ints1, ranges::equal_to{},
std::identity{}, &Int::value));
EXPECT_EQ(ranges::end(array3),
EXPECT_EQ(std::ranges::end(array3),
ranges::find_first_of(array3, ints2, ranges::equal_to{},
std::identity{}, &Int::value));
}
TEST(RangesTest, AdjacentFind) {
constexpr int array[] = {1, 2, 3, 3};
static_assert(array + 2 == ranges::adjacent_find(array, ranges::end(array)),
"");
static_assert(
array == ranges::adjacent_find(array, ranges::end(array), ranges::less{}),
"");
array + 2 == ranges::adjacent_find(array, std::ranges::end(array)), "");
static_assert(array == ranges::adjacent_find(array, std::ranges::end(array),
ranges::less{}),
"");
constexpr Int ints[] = {{6}, {6}, {5}, {4}};
static_assert(
ints == ranges::adjacent_find(ints, ranges::equal_to{}, &Int::value), "");
static_assert(ranges::end(ints) ==
static_assert(std::ranges::end(ints) ==
ranges::adjacent_find(ints, ranges::less{}, &Int::value),
"");
}

@ -6,6 +6,7 @@
#include <memory>
#include <optional>
#include <ranges>
#include <string>
#include <vector>
@ -79,7 +80,7 @@ bool IsItemPinned(const std::string& item_id) {
base::ranges::find_if(shelf_items, [&item_id](const auto& shelf_item) {
return shelf_item.id.app_id == item_id;
});
return pinned_item != base::ranges::end(shelf_items);
return pinned_item != std::ranges::end(shelf_items);
}
class AppServicePromiseAppItemBrowserTest

@ -6,6 +6,7 @@
#include <algorithm>
#include <iterator>
#include <ranges>
#include <string>
#include <utility>
#include <vector>
@ -720,7 +721,7 @@ void PdfAccessibilityTree::AddPostamblePageIfNeeded(
}
auto iter = ranges::find(doc_node_->child_ids, last_page_node_id);
CHECK(iter != std::end(doc_node_->child_ids));
CHECK(iter != std::ranges::end(doc_node_->child_ids));
doc_node_->child_ids.insert(++iter, page_id);
postamble_page_tree_update_->nodes[0] = *doc_node_;
} else {
@ -771,7 +772,7 @@ void PdfAccessibilityTree::AddPostamblePageIfNeeded(
postamble_page->root_id = doc_node_->id;
auto iter = ranges::find(doc_node_->child_ids, last_page_node_id);
CHECK(iter != std::end(doc_node_->child_ids));
CHECK(iter != std::ranges::end(doc_node_->child_ids));
doc_node_->child_ids.insert(iter, page.id);
postamble_page->nodes = {*doc_node_, std::move(page), std::move(paragraph),
std::move(static_text),
@ -1142,7 +1143,7 @@ void PdfAccessibilityTree::OnOcrDataReceived(
[&ocr_request](const std::unique_ptr<ui::AXNodeData>& node) {
return node->id == ocr_request.image_node_id;
});
CHECK(image_node_iter != ranges::end(nodes_));
CHECK(image_node_iter != std::ranges::end(nodes_));
if (ocr_request.image.alt_text.empty()) {
// TODO(crbug.com/289010799): Add a CHECK to ensure that the image
// node was labeled with `IDS_PDF_OCR_IN_PROGRESS_AX_UNLABELED_IMAGE`
@ -1195,7 +1196,7 @@ void PdfAccessibilityTree::OnOcrDataReceived(
nodes_,
[&ocr_request](const std::unique_ptr<ui::AXNodeData>& node) {
return node->id == ocr_request.image_node_id;
}) != ranges::end(nodes_));
}) != std::ranges::end(nodes_));
}
#endif
@ -1269,7 +1270,7 @@ void PdfAccessibilityTree::OnOcrDataReceived(
nodes_, [&ocr_request](const std::unique_ptr<ui::AXNodeData>& node) {
return node->id == ocr_request.parent_node_id;
});
CHECK(parent_node_iter != ranges::end(nodes_));
CHECK(parent_node_iter != std::ranges::end(nodes_));
num_erased =
std::erase((*parent_node_iter)->child_ids, ocr_request.image_node_id);
CHECK_EQ(num_erased, 1);

@ -4,7 +4,9 @@
#include "components/policy/test_support/test_server_helpers.h"
#include <ranges>
#include <utility>
#include "base/ranges/algorithm.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "net/base/url_util.h"
@ -42,7 +44,7 @@ void CustomHttpResponse::SendResponse(
// TODO(crbug.com/40209048): Make GetHttpReasonPhrase support custom codes
// instead.
if (base::ranges::lower_bound(kStandardHttpStatusCodes, code()) !=
base::ranges::end(kStandardHttpStatusCodes)) {
std::ranges::end(kStandardHttpStatusCodes)) {
reason = BasicHttpResponse::reason();
}
delegate->SendHeadersContentAndFinish(code(), reason, BuildHeaders(),

@ -9,6 +9,7 @@
#include <algorithm>
#include <iterator>
#include <memory>
#include <ranges>
#include <string>
#include <utility>
#include <vector>
@ -632,7 +633,7 @@ void X11DesktopResizer::OnGnomeDisplayConfigReceived(
base::ranges::find_if(config.monitors, [](const auto& entry) {
return entry.second.GetCurrentMode() != nullptr;
});
if (monitor_iter == base::ranges::end(config.monitors)) {
if (monitor_iter == std::ranges::end(config.monitors)) {
LOG(ERROR) << "No enabled monitor found in GNOME config.";
return;
}

@ -5,6 +5,7 @@
#include "services/network/public/cpp/supports_loading_mode/supports_loading_mode_parser.h"
#include <optional>
#include <ranges>
#include "base/ranges/algorithm.h"
#include "net/http/http_response_headers.h"
@ -56,8 +57,9 @@ mojom::SupportsLoadingModePtr ParseSupportsLoadingMode(
const auto& token = item.item.GetString();
const auto* it =
base::ranges::find(kKnownLoadingModes, token, &KnownLoadingMode::token);
if (it == base::ranges::end(kKnownLoadingModes))
if (it == std::ranges::end(kKnownLoadingModes)) {
continue;
}
modes.push_back(it->enumerator);
}

@ -8,6 +8,7 @@
#include <iterator>
#include <map>
#include <ranges>
#include <utility>
#include <vector>
@ -359,7 +360,8 @@ size_t SerializeWordBoxes(const google::protobuf::RepeatedPtrField<
const auto formatting_context_start =
std::cbegin(word_boxes) + start_from_word_index;
const auto formatting_context_end =
ranges::find_if_not(formatting_context_start, ranges::end(word_boxes),
ranges::find_if_not(formatting_context_start,
std::ranges::end(word_boxes),
[formatting_context_start](const auto& word_box) {
return HaveIdenticalFormattingStyle(
*formatting_context_start, word_box);
@ -608,11 +610,13 @@ ui::AXTreeUpdate VisualAnnotationToAXTreeUpdate(
// Filter out invalid / unrecognized / unused nodes from the update.
update.nodes.resize(nodes.size());
const auto end_node_iter = ranges::copy_if(
nodes, ranges::begin(update.nodes), [](const ui::AXNodeData& node_data) {
nodes, std::ranges::begin(update.nodes),
[](const ui::AXNodeData& node_data) {
return node_data.role != ax::mojom::Role::kUnknown &&
node_data.id != ui::kInvalidAXNodeID;
});
update.nodes.resize(std::distance(std::begin(update.nodes), end_node_iter));
update.nodes.resize(
std::distance(std::ranges::begin(update.nodes), end_node_iter));
return update;
}

@ -6,6 +6,7 @@
#include <cstddef>
#include <ostream> // Needed to compile CHECK() with operator <<.
#include <ranges>
#include <set>
#include <string>
#include <string_view>
@ -318,7 +319,7 @@ SqliteResultCodeMappingEntry FindResultCode(int sqlite_result_code) {
return sqlite_result_code == rhs.result_code;
});
CHECK(mapping_it != base::ranges::end(kResultCodeMapping))
CHECK(mapping_it != std::ranges::end(kResultCodeMapping))
<< "Unsupported SQLite result code: " << sqlite_result_code;
return *mapping_it;
}
@ -419,7 +420,7 @@ void CheckSqliteLoggedResultCodeForTesting() {
[](SqliteResultCodeMappingEntry lhs, SqliteResultCodeMappingEntry rhs) {
return lhs.result_code >= rhs.result_code;
});
DCHECK_EQ(unordered_it, base::ranges::end(kResultCodeMapping))
DCHECK_EQ(unordered_it, std::ranges::end(kResultCodeMapping))
<< "Mapping ordering broken at {" << unordered_it->result_code << ", "
<< static_cast<int>(unordered_it->logged_code) << "}";