[libcxx-commits] [libcxx] [libc++] `std::ranges::advance`: avoid unneeded bounds checks when advancing iterator (PR #84126)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Mar 9 02:25:43 PST 2024
Jan =?utf-8?q?Kokemüller?= <jan.kokemueller at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/84126 at github.com>
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 60822637bf007cbaf7401a6ec25cdf2ea7b7edbd b23e7fe87d6eaa65cf684749e2eb1ceee51176d0 -- libcxx/include/__iterator/advance.h libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp libcxx/test/support/test_iterators.h
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
index 72584e60d9..5dffb5267c 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
@@ -225,10 +225,10 @@ constexpr bool test() {
// `bidirectional_iterator` that doesn't model `sized_sentinel_for`.
{
static_assert(std::bidirectional_iterator<bidirectional_iterator<iota_iterator>>);
- static_assert(!std::sized_sentinel_for<bidirectional_iterator<iota_iterator>,
- bidirectional_iterator<iota_iterator>>);
+ static_assert(
+ !std::sized_sentinel_for<bidirectional_iterator<iota_iterator>, bidirectional_iterator<iota_iterator>>);
- auto it = stride_counting_iterator(bidirectional_iterator(iota_iterator{+1}));
+ auto it = stride_counting_iterator(bidirectional_iterator(iota_iterator{+1}));
auto sent = stride_counting_iterator(bidirectional_iterator(iota_iterator{-2}));
assert(std::ranges::advance(it, -3, sent) == 0);
assert(base(base(it)) == iota_iterator{-2});
diff --git a/libcxx/test/support/test_iterators.h b/libcxx/test/support/test_iterators.h
index e551ab5a62..7ffb74990f 100644
--- a/libcxx/test/support/test_iterators.h
+++ b/libcxx/test/support/test_iterators.h
@@ -843,16 +843,13 @@ public:
return base(x) - base(y);
}
- constexpr void record_equality_comparison() const
- {
- ++equals_count_;
- }
+ constexpr void record_equality_comparison() const { ++equals_count_; }
constexpr bool operator==(stride_counting_iterator const& other) const
requires std::sentinel_for<It, It>
{
- record_equality_comparison();
- return It(base_) == It(other.base_);
+ record_equality_comparison();
+ return It(base_) == It(other.base_);
}
friend constexpr bool operator<(stride_counting_iterator const& x, stride_counting_iterator const& y)
``````````
</details>
https://github.com/llvm/llvm-project/pull/84126
More information about the libcxx-commits
mailing list