[libcxx-commits] [libcxx] [libc++][ranges][enumerate_view] Update `size.pass.cpp` (PR #233777)
Lucas Mellone via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Oct 20 03:32:25 PDT 2026
https://github.com/lknknm created https://github.com/llvm/llvm-project/pull/233777
Completes the [range.enumerate.sentinel] `size` test by addressing the review comment https://github.com/llvm/llvm-project/pull/73617#discussion_r1416645016 from the original implementation.
>From af26d31c9a67eeb6c8b028fd0e1a332f8b068be4 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Tue, 20 Oct 2026 12:25:25 +0200
Subject: [PATCH 1/2] update: enumerate/size.pass.cpp
---
.../range.adaptors/range.enumerate/size.pass.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
index 3e641d97ebecb3..a6b471405a3c2b 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
@@ -38,6 +38,18 @@ static_assert(!std::ranges::sized_range<const NonSizedRangeView>);
static_assert(!HasMemberSize<std::ranges::enumerate_view<NonSizedRangeView>>);
static_assert(!HasMemberSize<const std::ranges::enumerate_view<NonSizedRangeView>>);
+struct NonConstSizedView : std::ranges::view_base {
+ using iterator = forward_iterator<int*>;
+ iterator begin() const;
+ iterator end() const;
+ std::size_t size();
+};
+
+static_assert(std::ranges::sized_range<NonConstSizedView>);
+static_assert(!std::ranges::sized_range<const NonConstSizedView>);
+static_assert(HasMemberSize<std::ranges::enumerate_view<NonConstSizedView>>);
+static_assert(!HasMemberSize<const std::ranges::enumerate_view<NonConstSizedView>>);
+
constexpr bool test() {
int buffer[] = {1, 2, 3};
>From b396b79e503c22a55c85c0a74cbfd2a8fd56e2c2 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Tue, 20 Oct 2026 12:30:46 +0200
Subject: [PATCH 2/2] add comment
---
.../test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
index a6b471405a3c2b..84a2c6331df40f 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
@@ -45,6 +45,7 @@ struct NonConstSizedView : std::ranges::view_base {
std::size_t size();
};
+// Test the pathological type where it is sized if it's const but not sized if it's const.
static_assert(std::ranges::sized_range<NonConstSizedView>);
static_assert(!std::ranges::sized_range<const NonConstSizedView>);
static_assert(HasMemberSize<std::ranges::enumerate_view<NonConstSizedView>>);
More information about the libcxx-commits
mailing list