[libc-commits] [libc] [libc][fixedvector] Add const_iterator begin/end (PR #96714)
via libc-commits
libc-commits at lists.llvm.org
Tue Jun 25 16:26:09 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: None (PiJoules)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/96714.diff
2 Files Affected:
- (modified) libc/src/__support/fixedvector.h (+5)
- (modified) libc/test/src/__support/fixedvector_test.cpp (+10)
``````````diff
diff --git a/libc/src/__support/fixedvector.h b/libc/src/__support/fixedvector.h
index 403b1620d20df..5161c0d7a533c 100644
--- a/libc/src/__support/fixedvector.h
+++ b/libc/src/__support/fixedvector.h
@@ -90,6 +90,11 @@ template <typename T, size_t CAPACITY> class FixedVector {
LIBC_INLINE constexpr iterator begin() { return store.begin(); }
LIBC_INLINE constexpr iterator end() { return iterator{&store[item_count]}; }
+
+ LIBC_INLINE constexpr const_iterator begin() const { return store.begin(); }
+ LIBC_INLINE constexpr const_iterator end() const {
+ return const_iterator{&store[item_count]};
+ }
};
} // namespace LIBC_NAMESPACE
diff --git a/libc/test/src/__support/fixedvector_test.cpp b/libc/test/src/__support/fixedvector_test.cpp
index 212e1aed20f7c..b73df04d03746 100644
--- a/libc/test/src/__support/fixedvector_test.cpp
+++ b/libc/test/src/__support/fixedvector_test.cpp
@@ -96,3 +96,13 @@ TEST(LlvmLibcFixedVectorTest, ForwardIteration) {
ASSERT_EQ(*it, arr[idx]);
}
}
+
+TEST(LlvmLibcFixedVectorTest, ConstForwardIteration) {
+ const LIBC_NAMESPACE::cpp::array<int, 4> arr{1, 2, 3, 4};
+ const LIBC_NAMESPACE::FixedVector<int, 5> vec(arr.begin(), arr.end());
+ ASSERT_EQ(vec.size(), arr.size());
+ for (auto it = vec.begin(); it != vec.end(); ++it) {
+ auto idx = it - vec.begin();
+ ASSERT_EQ(*it, arr[idx]);
+ }
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/96714
More information about the libc-commits
mailing list