[libcxx-commits] [libcxx] WIP [libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (PR #193891)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Apr 23 20:55:33 PDT 2026
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 h,cpp -- libcxx/include/__ranges/elements_view.h libcxx/include/__ranges/filter_view.h libcxx/include/__ranges/iota_view.h libcxx/include/__ranges/istream_view.h libcxx/include/__ranges/join_view.h libcxx/include/__ranges/lazy_split_view.h libcxx/include/__ranges/split_view.h libcxx/include/__ranges/take_view.h libcxx/include/__ranges/take_while_view.h libcxx/include/__ranges/transform_view.h libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.other.pass.cpp libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.convert.pass.cpp libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp libcxx/test/std/ranges/range.adaptors/range.filter/iterator/base.pass.cpp libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp libcxx/test/std/ranges/range.adaptors/range.split/iterator/base.pass.cpp libcxx/test/std/ranges/range.adaptors/range.split/iterator/ctor.base.pass.cpp libcxx/test/std/ranges/range.adaptors/range.split/iterator/deref.pass.cpp libcxx/test/std/ranges/range.adaptors/range.split/sentinel/ctor.parent.pass.cpp libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.convert.pass.cpp libcxx/test/std/ranges/range.adaptors/range.take/range.take.sentinel/ctor.pass.cpp libcxx/test/std/ranges/range.factories/range.istream.view/ctor.pass.cpp libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.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/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp
index 95a3696e1..b41f894d0 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp
@@ -48,7 +48,7 @@ constexpr bool test() {
// &
{
- ElementsIter it = std::ranges::elements_view<BaseView, 0>{BaseView{&t, &t + 1}}.begin();
+ ElementsIter it = std::ranges::elements_view<BaseView, 0>{BaseView{&t, &t + 1}}.begin();
decltype(auto) base = it.base();
static_assert(std::is_same_v<decltype(base), std::tuple<int>* const&>);
assert(base == &t);
@@ -56,7 +56,7 @@ constexpr bool test() {
// &&
{
- ElementsIter it = std::ranges::elements_view<BaseView, 0>{BaseView{&t, &t + 1}}.begin();
+ ElementsIter it = std::ranges::elements_view<BaseView, 0>{BaseView{&t, &t + 1}}.begin();
decltype(auto) base = std::move(it).base();
static_assert(std::is_same_v<decltype(base), std::tuple<int>*>);
assert(base == &t);
@@ -82,9 +82,10 @@ constexpr bool test() {
using MoveOnlyElemIter =
std::ranges::iterator_t<std::ranges::elements_view<std::ranges::subrange<MoveOnlyIter, Sent>, 0>>;
- auto it = std::ranges::elements_view<std::ranges::subrange<MoveOnlyIter, Sent>, 0>{
- std::ranges::subrange{MoveOnlyIter{{}, MoveOnly{5}}, Sent{}}}
- .begin();
+ auto it =
+ std::ranges::elements_view<std::ranges::subrange<MoveOnlyIter, Sent>, 0>{
+ std::ranges::subrange{MoveOnlyIter{{}, MoveOnly{5}}, Sent{}}}
+ .begin();
decltype(auto) base = std::move(it).base();
static_assert(std::is_same_v<decltype(base), MoveOnlyIter>);
assert(base.mo.get() == 5);
diff --git a/libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp
index a11d16817..885582a5c 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp
@@ -28,7 +28,7 @@ constexpr bool test() {
using EleSent = std::ranges::sentinel_t<EleRange>;
const EleRange ev;
- const EleSent st = ev.end();
+ const EleSent st = ev.end();
std::same_as<Sent> decltype(auto) base = st.base();
assert(base.i == 5);
diff --git a/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp
index 46d59c3de..284a22d21 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp
@@ -88,7 +88,8 @@ constexpr void test() {
for (std::ptrdiff_t n = 0; n != 5; ++n) {
FilterView view = make_filter_view(array.data(), array.data() + array.size(), AlwaysTrue{});
FilterIterator iter = view.begin();
- for (std::ptrdiff_t i = 0; i < n; ++i) ++iter;
+ for (std::ptrdiff_t i = 0; i < n; ++i)
+ ++iter;
std::same_as<Iter> decltype(auto) result = iter.operator->();
assert(base(result) == array.data() + n);
assert(iter->x == n);
diff --git a/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp
index e794ff133..42b0f1816 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.filter/iterator/deref.pass.cpp
@@ -37,7 +37,8 @@ constexpr void test() {
for (std::size_t n = 0; n != array.size(); ++n) {
FilterIterator iter = view.begin();
- for (std::size_t i = 0; i < n; ++i) ++iter;
+ for (std::size_t i = 0; i < n; ++i)
+ ++iter;
ValueType& result = *iter;
ASSERT_SAME_TYPE(ValueType&, decltype(*iter));
assert(&result == array.data() + n);
diff --git a/libcxx/test/std/ranges/range.adaptors/range.split/iterator/base.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.split/iterator/base.pass.cpp
index 66c2914ba..8e8eff8a1 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.split/iterator/base.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.split/iterator/base.pass.cpp
@@ -16,7 +16,7 @@
#include "../types.h"
struct Iter : ForwardIterBase<Iter> {
- int i = 0;
+ int i = 0;
constexpr Iter() = default;
constexpr Iter(int ii) : i(ii) {}
constexpr int operator*() const { return i; }
@@ -37,33 +37,32 @@ constexpr bool test() {
using SplitView = std::ranges::split_view<std::ranges::subrange<Iter>, std::ranges::subrange<Iter>>;
using SplitIter = std::ranges::iterator_t<SplitView>;
- SplitView sv{std::ranges::subrange<Iter>{Iter{5}, Iter{8}},
- std::ranges::subrange<Iter>{Iter{8}, Iter{9}}};
+ SplitView sv{std::ranges::subrange<Iter>{Iter{5}, Iter{8}}, std::ranges::subrange<Iter>{Iter{8}, Iter{9}}};
// const &
{
- const SplitIter it = sv.begin();
+ const SplitIter it = sv.begin();
std::same_as<Iter> decltype(auto) base = it.base();
assert(base.i == 5);
}
// &
{
- SplitIter it = sv.begin();
+ SplitIter it = sv.begin();
std::same_as<Iter> decltype(auto) base = it.base();
assert(base.i == 5);
}
// &&
{
- SplitIter it = sv.begin();
+ SplitIter it = sv.begin();
std::same_as<Iter> decltype(auto) base = std::move(it).base();
assert(base.i == 5);
}
// const &&
{
- const SplitIter it = sv.begin();
+ const SplitIter it = sv.begin();
std::same_as<Iter> decltype(auto) base = std::move(it).base();
assert(base.i == 5);
}
diff --git a/libcxx/test/std/ranges/range.adaptors/range.split/iterator/deref.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.split/iterator/deref.pass.cpp
index be7aca854..0e9812020 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.split/iterator/deref.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.split/iterator/deref.pass.cpp
@@ -17,7 +17,7 @@
#include "../types.h"
struct Iter : ForwardIterBase<Iter> {
- int i = 0;
+ int i = 0;
constexpr Iter() = default;
constexpr Iter(int ii) : i(ii) {}
constexpr int operator*() const { return i; }
@@ -37,9 +37,8 @@ constexpr bool test() {
using SplitView = std::ranges::split_view<std::ranges::subrange<Iter>, std::ranges::subrange<Iter>>;
using SplitIter = std::ranges::iterator_t<SplitView>;
- SplitView sv{std::ranges::subrange<Iter>{Iter{5}, Iter{8}},
- std::ranges::subrange<Iter>{Iter{7}, Iter{8}}};
- const SplitIter it = sv.begin();
+ SplitView sv{std::ranges::subrange<Iter>{Iter{5}, Iter{8}}, std::ranges::subrange<Iter>{Iter{7}, Iter{8}}};
+ const SplitIter it = sv.begin();
std::same_as<std::ranges::subrange<Iter>> decltype(auto) value = *it;
assert(value.begin().i == 5);
assert(value.end().i == 7);
diff --git a/libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.convert.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.convert.pass.cpp
index 0fffe9b50..180854542 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.convert.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.convert.pass.cpp
@@ -82,7 +82,7 @@ constexpr bool test() {
static_assert(!std::same_as<Sentinel, ConstSentinel>);
R r{TestRng{}, nullptr};
- Sentinel s1 = r.end();
+ Sentinel s1 = r.end();
ConstSentinel s2 = s1;
assert(s2.base().i == 5);
}
@@ -107,11 +107,11 @@ constexpr bool test() {
static_assert(!std::same_as<Sentinel, ConstSentinel>);
R r{TestRng{}, pred};
- Sentinel s1 = r.end();
+ Sentinel s1 = r.end();
ConstSentinel s2 = s1;
- int i = 10;
- int* iter = &i;
+ int i = 10;
+ int* iter = &i;
[[maybe_unused]] bool b = iter == s2;
assert(called);
}
@@ -141,7 +141,7 @@ constexpr bool test() {
static_assert(!std::same_as<Sentinel, ConstSentinel>);
R r{Rng{}, TestPred{}};
- Sentinel s1 = r.end();
+ Sentinel s1 = r.end();
ConstSentinel s2 = s1;
assert(s2.base().i == 0);
}
diff --git a/libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.cpp b/libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.cpp
index d010ee06d..9f9f13399 100644
--- a/libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.cpp
+++ b/libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.cpp
@@ -28,7 +28,6 @@ void test() {
std::same_as<int&> decltype(auto) v1 = *it;
assert(v1 == 1);
}
-
}
int main(int, char**) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/193891
More information about the libcxx-commits
mailing list