[llvm] [ADT] Use a C++17 fold expression in BitVector.h (NFC) (PR #161626)

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 1 22:06:31 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-adt

Author: Kazu Hirata (kazutakahirata)

<details>
<summary>Changes</summary>

This patch simplifies the assertion by replacing the std::all_of check
with a more direct C++17 fold expression.


---
Full diff: https://github.com/llvm/llvm-project/pull/161626.diff


1 Files Affected:

- (modified) llvm/include/llvm/ADT/BitVector.h (+1-4) 


``````````diff
diff --git a/llvm/include/llvm/ADT/BitVector.h b/llvm/include/llvm/ADT/BitVector.h
index 83350e6e45846..9e81a4b735e7f 100644
--- a/llvm/include/llvm/ADT/BitVector.h
+++ b/llvm/include/llvm/ADT/BitVector.h
@@ -570,10 +570,7 @@ class BitVector {
   template <class F, class... ArgTys>
   static BitVector &apply(F &&f, BitVector &Out, BitVector const &Arg,
                           ArgTys const &...Args) {
-    assert(llvm::all_of(
-               std::initializer_list<unsigned>{Args.size()...},
-               [&Arg](auto const &BV) { return Arg.size() == BV; }) &&
-           "consistent sizes");
+    assert(((Arg.size() == Args.size()) && ...) && "consistent sizes");
     Out.resize(Arg.size());
     for (size_type I = 0, E = Arg.Bits.size(); I != E; ++I)
       Out.Bits[I] = f(Arg.Bits[I], Args.Bits[I]...);

``````````

</details>


https://github.com/llvm/llvm-project/pull/161626


More information about the llvm-commits mailing list