Skip to content

Commit 42deb8e

Browse files
committed
Uncomment tests'
1 parent a195c7e commit 42deb8e

File tree

1 file changed

+42
-42
lines changed
  • libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance

1 file changed

+42
-42
lines changed

libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/range.pass.cpp

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -62,57 +62,57 @@ constexpr bool test() {
6262
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&>);
6363
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&&>);
6464
}
65-
// {
66-
// // Sized range (unsized sentinel type), non-copyable iterator type, rvalue-ref-qualified begin()
67-
// using It = cpp20_input_iterator<int*>;
68-
// using Sent = sentinel_wrapper<cpp20_input_iterator<int*>>;
69-
// using R = std::ranges::subrange<It, Sent, std::ranges::subrange_kind::sized>;
65+
{
66+
// Sized range (unsized sentinel type), non-copyable iterator type, rvalue-ref-qualified begin()
67+
using It = cpp20_input_iterator<int*>;
68+
using Sent = sentinel_wrapper<cpp20_input_iterator<int*>>;
69+
using R = std::ranges::subrange<It, Sent, std::ranges::subrange_kind::sized>;
7070

71-
// int a[] = {1, 2, 3};
72-
// {
73-
// auto r = R(It(a), Sent(It(a + 3)), 3);
74-
// assert(std::ranges::distance(r) == 3);
75-
// }
76-
// {
77-
// auto r = R(It(a), Sent(It(a + 3)), 3);
78-
// assert(std::ranges::distance(static_cast<R&&>(r)) == 3);
79-
// }
80-
// static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&>);
81-
// static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&&>);
82-
// }
83-
// {
84-
// // Sized range (sized sentinel type), non-copyable iterator type
85-
// test_ordinary<cpp20_input_iterator<int*>, sized_sentinel<cpp20_input_iterator<int*>>>();
86-
// }
87-
// test_ordinary<cpp17_input_iterator<int*>, sentinel_wrapper<cpp17_input_iterator<int*>>>();
88-
// test_ordinary<cpp20_input_iterator<int*>, sentinel_wrapper<cpp20_input_iterator<int*>>>();
89-
// test_ordinary<cpp17_output_iterator<int*>, sentinel_wrapper<cpp17_output_iterator<int*>>>();
90-
// test_ordinary<forward_iterator<int*>, sentinel_wrapper<forward_iterator<int*>>>();
91-
// test_ordinary<bidirectional_iterator<int*>, sentinel_wrapper<bidirectional_iterator<int*>>>();
92-
// test_ordinary<random_access_iterator<int*>, sentinel_wrapper<random_access_iterator<int*>>>();
93-
// test_ordinary<contiguous_iterator<int*>, sentinel_wrapper<contiguous_iterator<int*>>>();
94-
// test_ordinary<int*, sentinel_wrapper<int*>>();
71+
int a[] = {1, 2, 3};
72+
{
73+
auto r = R(It(a), Sent(It(a + 3)), 3);
74+
assert(std::ranges::distance(r) == 3);
75+
}
76+
{
77+
auto r = R(It(a), Sent(It(a + 3)), 3);
78+
assert(std::ranges::distance(static_cast<R&&>(r)) == 3);
79+
}
80+
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&>);
81+
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), const R&&>);
82+
}
83+
{
84+
// Sized range (sized sentinel type), non-copyable iterator type
85+
test_ordinary<cpp20_input_iterator<int*>, sized_sentinel<cpp20_input_iterator<int*>>>();
86+
}
87+
test_ordinary<cpp17_input_iterator<int*>, sentinel_wrapper<cpp17_input_iterator<int*>>>();
88+
test_ordinary<cpp20_input_iterator<int*>, sentinel_wrapper<cpp20_input_iterator<int*>>>();
89+
test_ordinary<cpp17_output_iterator<int*>, sentinel_wrapper<cpp17_output_iterator<int*>>>();
90+
test_ordinary<forward_iterator<int*>, sentinel_wrapper<forward_iterator<int*>>>();
91+
test_ordinary<bidirectional_iterator<int*>, sentinel_wrapper<bidirectional_iterator<int*>>>();
92+
test_ordinary<random_access_iterator<int*>, sentinel_wrapper<random_access_iterator<int*>>>();
93+
test_ordinary<contiguous_iterator<int*>, sentinel_wrapper<contiguous_iterator<int*>>>();
94+
test_ordinary<int*, sentinel_wrapper<int*>>();
9595

96-
// test_ordinary<cpp17_input_iterator<int*>, sized_sentinel<cpp17_input_iterator<int*>>>();
97-
// test_ordinary<cpp20_input_iterator<int*>, sized_sentinel<cpp20_input_iterator<int*>>>();
98-
// test_ordinary<cpp17_output_iterator<int*>, sized_sentinel<cpp17_output_iterator<int*>>>();
99-
// test_ordinary<forward_iterator<int*>, sized_sentinel<forward_iterator<int*>>>();
100-
// test_ordinary<bidirectional_iterator<int*>, sized_sentinel<bidirectional_iterator<int*>>>();
101-
// test_ordinary<random_access_iterator<int*>, sized_sentinel<random_access_iterator<int*>>>();
102-
// test_ordinary<contiguous_iterator<int*>, sized_sentinel<contiguous_iterator<int*>>>();
103-
// test_ordinary<int*, sized_sentinel<int*>>();
104-
// test_ordinary<int*, int*>();
96+
test_ordinary<cpp17_input_iterator<int*>, sized_sentinel<cpp17_input_iterator<int*>>>();
97+
test_ordinary<cpp20_input_iterator<int*>, sized_sentinel<cpp20_input_iterator<int*>>>();
98+
test_ordinary<cpp17_output_iterator<int*>, sized_sentinel<cpp17_output_iterator<int*>>>();
99+
test_ordinary<forward_iterator<int*>, sized_sentinel<forward_iterator<int*>>>();
100+
test_ordinary<bidirectional_iterator<int*>, sized_sentinel<bidirectional_iterator<int*>>>();
101+
test_ordinary<random_access_iterator<int*>, sized_sentinel<random_access_iterator<int*>>>();
102+
test_ordinary<contiguous_iterator<int*>, sized_sentinel<contiguous_iterator<int*>>>();
103+
test_ordinary<int*, sized_sentinel<int*>>();
104+
test_ordinary<int*, int*>();
105105

106-
// // Calling it on a non-range isn't allowed.
107-
// static_assert(!std::is_invocable_v<decltype(std::ranges::distance), int>);
108-
// static_assert(!std::is_invocable_v<decltype(std::ranges::distance), int*>);
106+
// Calling it on a non-range isn't allowed.
107+
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), int>);
108+
static_assert(!std::is_invocable_v<decltype(std::ranges::distance), int*>);
109109

110110
return true;
111111
}
112112

113113
int main(int, char**) {
114114
test();
115-
// static_assert(test());
115+
static_assert(test());
116116

117117
return 0;
118118
}

0 commit comments

Comments
 (0)