Skip to content

Commit 34f401e

Browse files
committed
fixup! WIP: [libc++][ranges] Implement ranges::stride_view.
Refactor and add additional tests. Signed-off-by: Will Hawkins <[email protected]>
1 parent 1621f9c commit 34f401e

File tree

11 files changed

+1063
-73
lines changed

11 files changed

+1063
-73
lines changed

libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/operator.nodiscard.verify.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
constexpr bool test_non_forward_operator_minus() {
1818
int arr[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
1919

20-
using Base = BasicTestView<SizedInputIterator, SizedInputIterator>;
20+
using Base = BasicTestView<SizedInputIter, SizedInputIter>;
2121

22-
auto base_view_offset_zero = Base(SizedInputIterator(arr), SizedInputIterator(arr + 10));
23-
auto base_view_offset_one = Base(SizedInputIterator(arr + 1), SizedInputIterator(arr + 10));
22+
auto base_view_offset_zero = Base(SizedInputIter(arr), SizedInputIter(arr + 10));
23+
auto base_view_offset_one = Base(SizedInputIter(arr + 1), SizedInputIter(arr + 10));
2424
auto stride_view_over_base_zero_offset = std::ranges::stride_view(base_view_offset_zero, 3);
2525
auto stride_view_over_base_one_offset = std::ranges::stride_view(base_view_offset_one, 3);
2626

libcxx/test/std/ranges/range.adaptors/range.stride.view/adaptor.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ using RandomAccessStrideView = std::ranges::stride_view<BasicTestView<random_acc
2525

2626
using SizedForwardStrideView =
2727
std::ranges::stride_view<BasicTestView<random_access_iterator<int*>, random_access_iterator<int*>>>;
28-
using SizedInputStrideView = std::ranges::stride_view<BasicTestView<SizedInputIterator, SizedInputIterator>>;
28+
using SizedInputStrideView = std::ranges::stride_view<BasicTestView<SizedInputIter, SizedInputIter>>;
2929

3030
static_assert(std::ranges::forward_range<ForwardStrideView>);
3131
static_assert(std::ranges::bidirectional_range<BidirStrideView>);

libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/base.pass.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ bool base_move() {
5353
int move_counter = 0;
5454
int copy_counter = 0;
5555

56-
auto start = SizedInputIterator();
56+
auto start = SizedInputIter();
5757
start.move_counter = &move_counter;
5858
start.copy_counter = &copy_counter;
59-
auto stop = SizedInputIterator();
59+
auto stop = SizedInputIter();
6060

61-
auto view = BasicTestView<SizedInputIterator>{start, stop};
62-
auto sv = std::ranges::stride_view<BasicTestView<SizedInputIterator>>(view, 1);
61+
auto view = BasicTestView<SizedInputIter>{start, stop};
62+
auto sv = std::ranges::stride_view<BasicTestView<SizedInputIter>>(view, 1);
6363
auto svi = sv.begin();
6464

6565
// Reset the move/copy counters so that they reflect *only* whether the
@@ -78,20 +78,20 @@ bool base_copy() {
7878
// See above.
7979
int move_counter = 0;
8080
int copy_counter = 0;
81-
auto start = SizedInputIterator();
81+
auto start = SizedInputIter();
8282

8383
start.move_counter = &move_counter;
8484
start.copy_counter = &copy_counter;
85-
auto stop = SizedInputIterator();
85+
auto stop = SizedInputIter();
8686

87-
auto view = BasicTestView<SizedInputIterator>{start, stop};
88-
auto sv = std::ranges::stride_view<BasicTestView<SizedInputIterator>>(view, 1);
87+
auto view = BasicTestView<SizedInputIter>{start, stop};
88+
auto sv = std::ranges::stride_view<BasicTestView<SizedInputIter>>(view, 1);
8989
[[maybe_unused]] auto svi = sv.begin();
9090

9191
// See above.
9292
move_counter = 0;
9393
copy_counter = 0;
94-
[[maybe_unused]] const SizedInputIterator& result = svi.base();
94+
[[maybe_unused]] const SizedInputIter& result = svi.base();
9595

9696
// Ensure that base did _not_ std::move'd the iterator.
9797
assert(*result.move_counter == 0);

libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.copy.pass.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ struct NotSimpleViewConstIterEnd;
2525
template <bool, bool>
2626
struct NotSimpleViewConstIterBegin;
2727

28-
struct NotSimpleViewIterBegin : InputIterBase<NotSimpleViewIterBegin> {
28+
struct NotSimpleViewIterBegin : InputIter<NotSimpleViewIterBegin> {
2929
template <bool CopyConvertible, bool MoveConvertible>
3030
friend constexpr bool
3131
operator==(const NotSimpleViewIterBegin&, const NotSimpleViewConstIterEnd<CopyConvertible, MoveConvertible>&) {
@@ -39,7 +39,7 @@ struct NotSimpleViewIterBegin : InputIterBase<NotSimpleViewIterBegin> {
3939
};
4040

4141
template <bool CopyConvertible, bool MoveConvertible>
42-
struct NotSimpleViewConstIterBegin : InputIterBase<NotSimpleViewConstIterBegin<CopyConvertible, MoveConvertible>> {
42+
struct NotSimpleViewConstIterBegin : InputIter<NotSimpleViewConstIterBegin<CopyConvertible, MoveConvertible>> {
4343
constexpr NotSimpleViewConstIterBegin() = default;
4444
constexpr NotSimpleViewConstIterBegin(NotSimpleViewConstIterBegin&&) = default;
4545
constexpr NotSimpleViewConstIterBegin& operator=(const NotSimpleViewConstIterBegin&) = default;
@@ -63,7 +63,7 @@ struct NotSimpleViewConstIterBegin : InputIterBase<NotSimpleViewConstIterBegin<C
6363
}
6464
};
6565

66-
struct NotSimpleViewIterEnd : InputIterBase<NotSimpleViewIterEnd> {
66+
struct NotSimpleViewIterEnd : InputIter<NotSimpleViewIterEnd> {
6767
template <bool CopyConvertible, bool MoveConvertible>
6868
friend constexpr bool
6969
operator==(const NotSimpleViewIterEnd&, const NotSimpleViewConstIterBegin<CopyConvertible, MoveConvertible>&) {
@@ -79,7 +79,7 @@ struct NotSimpleViewIterEnd : InputIterBase<NotSimpleViewIterEnd> {
7979
};
8080

8181
template <bool CopyConvertible, bool MoveConvertible>
82-
struct NotSimpleViewConstIterEnd : InputIterBase<NotSimpleViewConstIterEnd<CopyConvertible, MoveConvertible>> {
82+
struct NotSimpleViewConstIterEnd : InputIter<NotSimpleViewConstIterEnd<CopyConvertible, MoveConvertible>> {
8383
constexpr NotSimpleViewConstIterEnd() = default;
8484
constexpr NotSimpleViewConstIterEnd(NotSimpleViewConstIterEnd&&) = default;
8585
constexpr NotSimpleViewConstIterEnd& operator=(const NotSimpleViewConstIterEnd&) = default;

libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.default.verify.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "../types.h"
1717
#include "test_iterators.h"
1818

19-
struct NonDefaultConstructibleIterator : InputIterBase<NonDefaultConstructibleIterator> {
19+
struct NonDefaultConstructibleIterator : InputIter<NonDefaultConstructibleIterator> {
2020
NonDefaultConstructibleIterator() = delete;
2121
constexpr NonDefaultConstructibleIterator(int) {}
2222
};

0 commit comments

Comments
 (0)