Files
allwpilib/upstream_utils/llvm_patches/0031-SmallVector-add-erase_if.patch
2026-05-26 21:55:50 -07:00

29 lines
989 B
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Tue, 18 Jun 2024 09:07:33 -0700
Subject: [PATCH 31/34] SmallVector: add erase_if()
---
llvm/include/llvm/ADT/SmallVector.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/llvm/include/llvm/ADT/SmallVector.h b/llvm/include/llvm/ADT/SmallVector.h
index 7f759efc1588bfb6eaef65b822bbdbf4f201ef8b..e51771928717625a218981ccd5b9068b63329b02 100644
--- a/llvm/include/llvm/ADT/SmallVector.h
+++ b/llvm/include/llvm/ADT/SmallVector.h
@@ -1344,6 +1344,14 @@ template <typename T, unsigned N> struct DenseMapInfo<llvm::SmallVector<T, N>> {
}
};
+template <typename T, typename Pred>
+typename SmallVectorImpl<T>::size_type erase_if(
+ SmallVectorImpl<T>& c, Pred pred) {
+ const auto original_size = c.size();
+ c.erase(std::remove_if(c.begin(), c.end(), pred), c.end());
+ return original_size - c.size();
+}
+
} // end namespace llvm
namespace std {