Skip to content

Commit 7236c98

Browse files
committed
fixup! WIP: [libc++][ranges] Implement ranges::stride_view.
Cleanup another stride_view::end test. Signed-off-by: Will Hawkins <[email protected]>
1 parent f3613aa commit 7236c98

File tree

1 file changed

+10
-14
lines changed
  • libcxx/test/std/ranges/range.adaptors/range.stride.view

1 file changed

+10
-14
lines changed

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,28 @@ static_assert(HasConstAndNonConstEnd<std::ranges::stride_view<UnSimpleConstView>
4242
constexpr bool test_non_default_sentinel() {
4343
{
4444
const int data[3] = {1, 2, 3};
45-
static_assert(simple_view<BasicTestView<int*, int*>>);
46-
static_assert(std::ranges::common_range<BasicTestView<int*, int*>>);
47-
static_assert(std::ranges::sized_range<BasicTestView<int*, int*>>);
48-
static_assert(std::ranges::forward_range<BasicTestView<int*, int*>>);
49-
5045
// A const, simple, common-, sized- and forward-range
46+
// Note: sized because it is possible to get a difference between its
47+
// beginning and its end.
5148
auto v = BasicTestView<const int*, const int*>{data, data + 3};
5249
auto sv = std::ranges::stride_view<BasicTestView<const int*, const int*>>(v, 1);
5350
static_assert(!std::is_same_v<std::default_sentinel_t, decltype(sv.end())>);
5451
}
5552

5653
{
5754
int data[3] = {1, 2, 3};
58-
// TODO: start here.
59-
using x = BasicTestView<forward_iterator<int*>, forward_iterator<int*>, false>;
60-
static_assert(simple_view<BasicTestView<forward_iterator<int*>>>);
61-
static_assert(std::ranges::common_range<x>);
62-
static_assert(!std::ranges::sized_range<x>);
63-
static_assert(!std::ranges::bidirectional_range<x>);
64-
65-
auto v = x{forward_iterator(data), forward_iterator(data + 3)};
66-
auto sv = std::ranges::stride_view<x>(v, 1);
55+
// ForwardTestView is not sized and not bidirectional, but it is common.
56+
// Note: It is not sized because BasicTestView has no member function named size (by default)
57+
// and nor is it possible to get a difference between its beginning and its end.
58+
using ForwardTestView = BasicTestView<forward_iterator<int*>, forward_iterator<int*>>;
59+
60+
auto v = ForwardTestView{forward_iterator(data), forward_iterator(data + 3)};
61+
auto sv = std::ranges::stride_view<ForwardTestView>(v, 1);
6762
static_assert(!std::is_same_v<std::default_sentinel_t, decltype(sv.end())>);
6863
}
6964

7065
{
66+
// TODO: Start here.
7167
static_assert(!simple_view<UnSimpleNoConstCommonView>);
7268
static_assert(std::ranges::common_range<UnSimpleNoConstCommonView>);
7369
static_assert(std::ranges::sized_range<UnSimpleNoConstCommonView>);

0 commit comments

Comments
 (0)