Skip to content

Commit f59baeb

Browse files
Inline iterator_concept into basic_const_iterator
1 parent 9c498c7 commit f59baeb

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

libcxx/include/__iterator/const_iterator.h

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -78,26 +78,9 @@ using __iter_const_rvalue_reference_t _LIBCPP_NODEBUG =
7878
common_reference_t<const iter_value_t<_Iter>&&, iter_rvalue_reference_t<_Iter>>;
7979

8080
template <class _Iter>
81-
struct __basic_const_iterator_concept {
82-
// clang-format off
83-
using iterator_concept =
84-
conditional_t<contiguous_iterator<_Iter>,
85-
contiguous_iterator_tag,
86-
conditional_t<random_access_iterator<_Iter>,
87-
random_access_iterator_tag,
88-
conditional_t<bidirectional_iterator<_Iter>,
89-
bidirectional_iterator_tag,
90-
conditional_t<forward_iterator<_Iter>,
91-
forward_iterator_tag,
92-
// else
93-
input_iterator_tag>>>>;
94-
// clang-format on
95-
};
96-
97-
template <class _Iter>
98-
struct __basic_const_iterator_category : __basic_const_iterator_concept<_Iter> {};
81+
struct __basic_const_iterator_category {};
9982
template <forward_iterator _Iter>
100-
struct __basic_const_iterator_category<_Iter> : __basic_const_iterator_concept<_Iter> {
83+
struct __basic_const_iterator_category<_Iter> {
10184
using iterator_category = std::iterator_traits<_Iter>::iterator_category;
10285
};
10386

@@ -111,6 +94,19 @@ class _LIBCPP_TEMPLATE_VIS basic_const_iterator : public __basic_const_iterator_
11194
public:
11295
using value_type = iter_value_t<_Iter>;
11396
using difference_type = iter_difference_t<_Iter>;
97+
// clang-format off
98+
using iterator_concept =
99+
conditional_t<contiguous_iterator<_Iter>,
100+
contiguous_iterator_tag,
101+
conditional_t<random_access_iterator<_Iter>,
102+
random_access_iterator_tag,
103+
conditional_t<bidirectional_iterator<_Iter>,
104+
bidirectional_iterator_tag,
105+
conditional_t<forward_iterator<_Iter>,
106+
forward_iterator_tag,
107+
// else
108+
input_iterator_tag>>>>;
109+
// clang-format on
114110

115111
_LIBCPP_HIDE_FROM_ABI basic_const_iterator()
116112
requires default_initializable<_Iter>

0 commit comments

Comments
 (0)