Skip to content

Commit f313aba

Browse files
committed
review comments
1 parent 0b4c958 commit f313aba

File tree

4 files changed

+30
-46
lines changed

4 files changed

+30
-46
lines changed

libcxx/include/__flat_set/ra_iterator.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___FLAT_SET_RA_ITERATOR_H
1111
#define _LIBCPP___FLAT_SET_RA_ITERATOR_H
1212

13+
#include "__type_traits/is_same.h"
1314
#include <__compare/three_way_comparable.h>
1415
#include <__config>
1516
#include <__iterator/incrementable_traits.h>
@@ -42,7 +43,7 @@ struct __ra_iterator {
4243
friend _Container;
4344

4445
// note: checking the concept random_access_iterator does not work for incomplete types
45-
static_assert(__is_same(iterator_traits<_Iterator>::iterator_category, random_access_iterator_tag),
46+
static_assert(_IsSame<typename iterator_traits<_Iterator>::iterator_category, random_access_iterator_tag>::value,
4647
"Underlying iterator must be a random access iterator");
4748

4849
public:

libcxx/test/libcxx/containers/container.adaptors/flat.set/iterator.compile.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ static_assert(!std::is_convertible_v<Iter3, Iter4>);
3939
static_assert(!std::is_convertible_v<Iter4, Iter1>);
4040
static_assert(!std::is_convertible_v<Iter4, Iter2>);
4141
static_assert(!std::is_convertible_v<Iter4, Iter3>);
42-
static_assert(std::is_convertible_v<Iter4, Iter4>);
42+
static_assert(std::is_convertible_v<Iter4, Iter4>);

libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter.pass.cpp

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -43,62 +43,50 @@ void test_one() {
4343
8,
4444
};
4545
M m(ar, ar + sizeof(ar) / sizeof(ar[0]));
46+
47+
auto make = [](std::initializer_list<int> il) {
48+
M m;
49+
for (int i : il) {
50+
m.emplace(i);
51+
}
52+
return m;
53+
};
4654
assert(m.size() == 8);
55+
assert(m == make({1, 2, 3, 4, 5, 6, 7, 8}));
4756
std::same_as<I> decltype(auto) i1 = m.erase(std::next(m.cbegin(), 3));
4857
assert(m.size() == 7);
4958
assert(i1 == std::next(m.begin(), 3));
50-
assert(*m.begin() == 1);
51-
assert(*std::next(m.begin()) == 2);
52-
assert(*std::next(m.begin(), 2) == 3);
53-
assert(*std::next(m.begin(), 3) == 5);
54-
assert(*std::next(m.begin(), 4) == 6);
55-
assert(*std::next(m.begin(), 5) == 7);
56-
assert(*std::next(m.begin(), 6) == 8);
59+
assert(m == make({1, 2, 3, 5, 6, 7, 8}));
5760

5861
std::same_as<I> decltype(auto) i2 = m.erase(std::next(m.begin(), 0));
5962
assert(m.size() == 6);
6063
assert(i2 == m.begin());
61-
assert(*m.begin() == 2);
62-
assert(*std::next(m.begin()) == 3);
63-
assert(*std::next(m.begin(), 2) == 5);
64-
assert(*std::next(m.begin(), 3) == 6);
65-
assert(*std::next(m.begin(), 4) == 7);
66-
assert(*std::next(m.begin(), 5) == 8);
64+
assert(m == make({2, 3, 5, 6, 7, 8}));
6765

6866
std::same_as<I> decltype(auto) i3 = m.erase(std::next(m.cbegin(), 5));
6967
assert(m.size() == 5);
7068
assert(i3 == m.end());
71-
assert(*m.begin() == 2);
72-
assert(*std::next(m.begin()) == 3);
73-
assert(*std::next(m.begin(), 2) == 5);
74-
assert(*std::next(m.begin(), 3) == 6);
75-
assert(*std::next(m.begin(), 4) == 7);
69+
assert(m == make({2, 3, 5, 6, 7}));
7670

7771
std::same_as<I> decltype(auto) i4 = m.erase(std::next(m.begin(), 1));
7872
assert(m.size() == 4);
7973
assert(i4 == std::next(m.begin()));
80-
assert(*m.begin() == 2);
81-
assert(*std::next(m.begin()) == 5);
82-
assert(*std::next(m.begin(), 2) == 6);
83-
assert(*std::next(m.begin(), 3) == 7);
74+
assert(m == make({2, 5, 6, 7}));
8475

8576
std::same_as<I> decltype(auto) i5 = m.erase(std::next(m.cbegin(), 2));
8677
assert(m.size() == 3);
8778
assert(i5 == std::next(m.begin(), 2));
88-
assert(*m.begin() == 2);
89-
assert(*std::next(m.begin()) == 5);
90-
assert(*std::next(m.begin(), 2) == 7);
79+
assert(m == make({2, 5, 7}));
9180

9281
std::same_as<I> decltype(auto) i6 = m.erase(std::next(m.begin(), 2));
9382
assert(m.size() == 2);
9483
assert(i6 == std::next(m.begin(), 2));
95-
assert(*m.begin() == 2);
96-
assert(*std::next(m.begin()) == 5);
84+
assert(m == make({2, 5}));
9785

9886
std::same_as<I> decltype(auto) i7 = m.erase(std::next(m.cbegin(), 0));
9987
assert(m.size() == 1);
10088
assert(i7 == std::next(m.begin(), 0));
101-
assert(*m.begin() == 5);
89+
assert(m == make({5}));
10290

10391
std::same_as<I> decltype(auto) i8 = m.erase(m.begin());
10492
assert(m.size() == 0);

libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter_iter.pass.cpp

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ void test_one() {
3131
using M = std::flat_set<Key, std::less<Key>, KeyContainer>;
3232
using I = M::iterator;
3333

34+
auto make = [](std::initializer_list<int> il) {
35+
M m;
36+
for (int i : il) {
37+
m.emplace(i);
38+
}
39+
return m;
40+
};
41+
3442
int ar[] = {
3543
1,
3644
2,
@@ -46,30 +54,17 @@ void test_one() {
4654
std::same_as<I> decltype(auto) i1 = m.erase(m.cbegin(), m.cbegin());
4755
assert(m.size() == 8);
4856
assert(i1 == m.begin());
49-
assert(*m.begin() == 1);
50-
assert(*std::next(m.begin()) == 2);
51-
assert(*std::next(m.begin(), 2) == 3);
52-
assert(*std::next(m.begin(), 3) == 4);
53-
assert(*std::next(m.begin(), 4) == 5);
54-
assert(*std::next(m.begin(), 5) == 6);
55-
assert(*std::next(m.begin(), 6) == 7);
56-
assert(*std::next(m.begin(), 7) == 8);
57+
assert(m == make({1, 2, 3, 4, 5, 6, 7, 8}));
5758

5859
std::same_as<I> decltype(auto) i2 = m.erase(m.cbegin(), std::next(m.cbegin(), 2));
5960
assert(m.size() == 6);
6061
assert(i2 == m.begin());
61-
assert(*std::next(m.begin(), 0) == 3);
62-
assert(*std::next(m.begin(), 1) == 4);
63-
assert(*std::next(m.begin(), 2) == 5);
64-
assert(*std::next(m.begin(), 3) == 6);
65-
assert(*std::next(m.begin(), 4) == 7);
66-
assert(*std::next(m.begin(), 5) == 8);
62+
assert(m == make({3, 4, 5, 6, 7, 8}));
6763

6864
std::same_as<I> decltype(auto) i3 = m.erase(std::next(m.cbegin(), 2), std::next(m.cbegin(), 6));
6965
assert(m.size() == 2);
7066
assert(i3 == std::next(m.begin(), 2));
71-
assert(*std::next(m.begin(), 0) == 3);
72-
assert(*std::next(m.begin(), 1) == 4);
67+
assert(m == make({3, 4}));
7368

7469
std::same_as<I> decltype(auto) i4 = m.erase(m.cbegin(), m.cend());
7570
assert(m.size() == 0);

0 commit comments

Comments
 (0)