@@ -69,101 +69,101 @@ concept cpp17_random_access_iterator =
6969
7070// has nested types
7171template <class Iter >
72- concept has_iterator_category = requires { typename Iter::iterator_category; };
72+ concept iter_has_iterator_category = requires { typename Iter::iterator_category; };
7373
7474template <class Iter >
75- concept has_value_type = requires { typename Iter::value_type; };
75+ concept iter_has_value_type = requires { typename Iter::value_type; };
7676
7777template <class Iter >
78- concept has_difference_type = requires { typename Iter::difference_type; };
78+ concept iter_has_difference_type = requires { typename Iter::difference_type; };
7979
8080template <class Iter >
81- concept has_pointer = requires { typename Iter::pointer; };
81+ concept iter_has_pointer = requires { typename Iter::pointer; };
8282
8383template <class Iter >
84- concept has_reference = requires { typename Iter::reference; };
84+ concept iter_has_reference = requires { typename Iter::reference; };
8585
8686// get pointer type
8787template <class Iter >
88- concept has_arrow =
88+ concept iter_has_arrow =
8989 requires (Iter &&iter) { static_cast <Iter &&>(iter).operator ->(); };
9090
9191template <class Iter >
92- struct get_pointer {
92+ struct iter_get_pointer {
9393 using type = void ;
9494};
9595
96- template <has_pointer Iter>
97- struct get_pointer <Iter> {
96+ template <iter_has_pointer Iter>
97+ struct iter_get_pointer <Iter> {
9898 using type = typename Iter::pointer;
9999};
100100
101101template <class Iter >
102- requires (!has_pointer <Iter>) && (has_arrow <Iter>)
103- struct get_pointer <Iter> {
102+ requires (!iter_has_pointer <Iter>) && (iter_has_arrow <Iter>)
103+ struct iter_get_pointer <Iter> {
104104 using type = decltype (std::declval<Iter &>().operator ->());
105105};
106106
107107// get reference type
108108template <class Iter >
109- struct get_reference {
109+ struct iter_get_reference {
110110 using type = std::remove_reference_t <Iter>;
111111};
112112
113- template <has_reference Iter>
114- struct get_reference <Iter> {
113+ template <iter_has_reference Iter>
114+ struct iter_get_reference <Iter> {
115115 using type = typename Iter::reference;
116116};
117117
118118// get iterator category
119119template <class Iter >
120- struct get_iterator_category_impl {
120+ struct iter_get_iterator_category_impl {
121121 using type = tinystl::input_iterator_tag;
122122};
123123
124124template <cpp17_forward_iterator Iter>
125- struct get_iterator_category_impl <Iter> {
125+ struct iter_get_iterator_category_impl <Iter> {
126126 using type = tinystl::forward_iterator_tag;
127127};
128128
129129template <cpp17_bidirectional_iterator Iter>
130- struct get_iterator_category_impl <Iter> {
130+ struct iter_get_iterator_category_impl <Iter> {
131131 using type = tinystl::bidirectional_iterator_tag;
132132};
133133
134134template <cpp17_random_access_iterator Iter>
135- struct get_iterator_category_impl <Iter> {
135+ struct iter_get_iterator_category_impl <Iter> {
136136 using type = tinystl::random_access_iterator_tag;
137137};
138138
139139template <class Iter >
140- struct get_iterator_category : get_iterator_category_impl <Iter> {};
140+ struct iter_get_iterator_category : iter_get_iterator_category_impl <Iter> {};
141141
142- template <has_iterator_category Iter>
143- struct get_iterator_category <Iter> {
142+ template <iter_has_iterator_category Iter>
143+ struct iter_get_iterator_category <Iter> {
144144 using type = Iter::iterator_category;
145145};
146146
147147template <class Iter >
148- struct get_difference_type {
148+ struct iter_get_difference_type {
149149 using type = void ;
150150};
151151
152152template <class Iter >
153153 requires requires {
154154 typename std::incrementable_traits<Iter>::difference_type;
155155 }
156- struct get_difference_type <Iter> {
156+ struct iter_get_difference_type <Iter> {
157157 using type = typename std::incrementable_traits<Iter>::difference_type;
158158};
159159
160160template <class Iter >
161161concept specifies_members = requires {
162- requires has_value_type <Iter>;
163- requires has_difference_type <Iter>;
164- requires has_reference <Iter>;
165- requires has_iterator_category <Iter>;
166- requires !has_pointer <Iter>;
162+ requires iter_has_value_type <Iter>;
163+ requires iter_has_difference_type <Iter>;
164+ requires iter_has_reference <Iter>;
165+ requires iter_has_iterator_category <Iter>;
166+ requires !iter_has_pointer <Iter>;
167167};
168168
169169template <class _Tp >
@@ -192,19 +192,19 @@ struct iterator_traits<Iter> {
192192
193193template <detail::cpp17_input_iterator_missing_members Iter>
194194struct iterator_traits <Iter> {
195- using iterator_category = typename detail::get_iterator_category <Iter>::type;
195+ using iterator_category = typename detail::iter_get_iterator_category <Iter>::type;
196196 using value_type = typename std::indirectly_readable_traits<Iter>::value_type;
197197 using difference_type =
198198 typename std::incrementable_traits<Iter>::difference_type;
199- using pointer = typename detail::get_pointer <Iter>::type;
200- using reference = typename detail::get_reference <Iter>::type;
199+ using pointer = typename detail::iter_get_pointer <Iter>::type;
200+ using reference = typename detail::iter_get_reference <Iter>::type;
201201};
202202
203203template <detail::cpp17_iterator_missing_members Iter>
204204struct iterator_traits <Iter> {
205205 using iterator_category = output_iterator_tag;
206206 using value_type = void ;
207- using difference_type = detail::get_difference_type <Iter>::type;
207+ using difference_type = detail::iter_get_difference_type <Iter>::type;
208208 using pointer = void ;
209209 using reference = void ;
210210};
0 commit comments