[clang-tools-extra] [llvm] [llvm][ADT] Add wrapper to `std::search` and `std::adjacent_find` (PR #171666)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 10 12:42:11 PST 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- clang-tools-extra/clang-tidy/llvm/UseRangesCheck.cpp llvm/include/llvm/ADT/STLExtras.h llvm/unittests/ADT/STLExtrasTest.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang-tools-extra/clang-tidy/llvm/UseRangesCheck.cpp b/clang-tools-extra/clang-tidy/llvm/UseRangesCheck.cpp
index 420cf63c0..5e7392b09 100644
--- a/clang-tools-extra/clang-tidy/llvm/UseRangesCheck.cpp
+++ b/clang-tools-extra/clang-tidy/llvm/UseRangesCheck.cpp
@@ -57,19 +57,19 @@ utils::UseRangesCheck::ReplacerMap UseRangesCheck::getReplacerMap() const {
// Single range algorithms
AddStdToLLVM(llvm::makeIntrusiveRefCnt<StdToLLVMReplacer>(SingleSig),
- {"all_of", "any_of",
- "none_of", "for_each",
- "find", "find_if",
- "find_if_not", "fill",
- "count", "count_if",
- "copy", "copy_if",
- "transform", "replace",
- "remove_if", "stable_sort",
- "partition", "partition_point",
- "is_sorted", "min_element",
- "max_element", "binary_search",
- "lower_bound", "upper_bound",
- "unique", "uninitialized_copy",
+ {"all_of", "any_of",
+ "none_of", "for_each",
+ "find", "find_if",
+ "find_if_not", "fill",
+ "count", "count_if",
+ "copy", "copy_if",
+ "transform", "replace",
+ "remove_if", "stable_sort",
+ "partition", "partition_point",
+ "is_sorted", "min_element",
+ "max_element", "binary_search",
+ "lower_bound", "upper_bound",
+ "unique", "uninitialized_copy",
"adjacent_find"});
// Two range algorithms
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index 9f9e7178a..7e98d9a58 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -1791,8 +1791,7 @@ OutputIt copy_if(R &&Range, OutputIt Out, UnaryPredicate P) {
}
/// Wrapper for std::search.
-template <typename R1, typename R2>
-auto search(R1 &&Range1, R2 &&Range2) {
+template <typename R1, typename R2> auto search(R1 &&Range1, R2 &&Range2) {
return std::search(adl_begin(Range1), adl_end(Range1), adl_begin(Range2),
adl_end(Range2));
}
@@ -1805,16 +1804,14 @@ auto search(R1 &&Range1, R2 &&Range2, BinaryPredicate P) {
}
/// Wrapper for std::adjacent_find.
-template <typename R>
-auto adjacent_find(R &&Range) {
+template <typename R> auto adjacent_find(R &&Range) {
return std::adjacent_find(adl_begin(Range), adl_end(Range));
}
/// Wrapper for std::adjacent_find.
template <typename R, typename BinaryPredicate>
auto adjacent_find(R &&Range, BinaryPredicate P) {
- return std::adjacent_find(adl_begin(Range), adl_end(Range),
- P);
+ return std::adjacent_find(adl_begin(Range), adl_end(Range), P);
}
/// Return the single value in \p Range that satisfies
diff --git a/llvm/unittests/ADT/STLExtrasTest.cpp b/llvm/unittests/ADT/STLExtrasTest.cpp
index 35378a699..b5e5d619b 100644
--- a/llvm/unittests/ADT/STLExtrasTest.cpp
+++ b/llvm/unittests/ADT/STLExtrasTest.cpp
@@ -1770,14 +1770,14 @@ TEST(STLExtrasTest, Search) {
std::vector<int> Haystack2 = {10, 20, 30, 40, 50};
std::vector<int> Needle5 = {20, 30};
std::vector<int> Needle6 = {200, 300};
- auto It8 = llvm::search(Haystack2, Needle5,
- [](int a, int b) { return a == b; });
+ auto It8 =
+ llvm::search(Haystack2, Needle5, [](int a, int b) { return a == b; });
EXPECT_NE(It8, Haystack2.end());
EXPECT_EQ(It8, Haystack2.begin() + 1);
// Test with predicate that doesn't match
- auto It9 = llvm::search(Haystack2, Needle6,
- [](int a, int b) { return a == b; });
+ auto It9 =
+ llvm::search(Haystack2, Needle6, [](int a, int b) { return a == b; });
EXPECT_EQ(It9, Haystack2.end());
// Test with StringRef
@@ -1835,7 +1835,8 @@ TEST(STLExtrasTest, AdjacentFind) {
auto It6 = llvm::adjacent_find(Single);
EXPECT_EQ(It6, Single.end());
- // Test with predicate version - finding adjacent elements that satisfy predicate
+ // Test with predicate version - finding adjacent elements that satisfy
+ // predicate
std::vector<int> V5 = {1, 2, 4, 3, 5, 6};
auto It7 = llvm::adjacent_find(V5, [](int a, int b) { return a > b; });
EXPECT_NE(It7, V5.end());
``````````
</details>
https://github.com/llvm/llvm-project/pull/171666
More information about the llvm-commits
mailing list