|
59 | 59 | template<class T> requires is_object_v<T> struct iterator_traits<T*>; // freestanding
|
60 | 60 |
|
61 | 61 | template<@\exposconcept{dereferenceable}@ T>
|
62 |
| - using iter_reference_t = decltype(*declval<T&>()); // freestanding |
| 62 | + using @\libglobal{iter_reference_t}@ = decltype(*declval<T&>()); // freestanding |
63 | 63 |
|
64 | 64 | namespace ranges {
|
65 | 65 | // \ref{iterator.cust}, customization point objects
|
|
76 | 76 | requires requires(T& t) {
|
77 | 77 | { ranges::iter_move(t) } -> @\exposconcept{can-reference}@;
|
78 | 78 | }
|
79 |
| - using iter_rvalue_reference_t // freestanding |
| 79 | + using @\libglobal{iter_rvalue_reference_t}@ // freestanding |
80 | 80 | = decltype(ranges::iter_move(declval<T&>()));
|
81 | 81 |
|
82 | 82 | // \ref{iterator.concepts}, iterator concepts
|
|
85 | 85 | concept indirectly_readable = @\seebelow@; // freestanding
|
86 | 86 |
|
87 | 87 | template<@\libconcept{indirectly_readable}@ T>
|
88 |
| - using iter_common_reference_t = // freestanding |
| 88 | + using @\libglobal{iter_common_reference_t}@ = // freestanding |
89 | 89 | common_reference_t<iter_reference_t<T>, iter_value_t<T>&>;
|
90 | 90 |
|
91 | 91 | // \ref{iterator.concept.writable}, concept \libconcept{indirectly_writable}
|
|
161 | 161 |
|
162 | 162 | template<class F, class... Is>
|
163 | 163 | requires (@\libconcept{indirectly_readable}@<Is> && ...) && @\libconcept{invocable}@<F, iter_reference_t<Is>...>
|
164 |
| - using indirect_result_t = invoke_result_t<F, iter_reference_t<Is>...>; // freestanding |
| 164 | + using @\libglobal{indirect_result_t}@ = invoke_result_t<F, iter_reference_t<Is>...>; // freestanding |
165 | 165 |
|
166 | 166 | // \ref{projected}, projected
|
167 | 167 | template<@\libconcept{indirectly_readable}@ I, @\libconcept{indirectly_regular_unary_invocable}@<I> Proj>
|
|
363 | 363 | };
|
364 | 364 |
|
365 | 365 | template<@\libconcept{input_iterator}@ I>
|
366 |
| - constexpr const_iterator<I> make_const_iterator(I it) { return it; } // freestanding |
| 366 | + constexpr const_iterator<I> @\libglobal{make_const_iterator}@(I it) { return it; } // freestanding |
367 | 367 |
|
368 | 368 | template<@\libconcept{semiregular}@ S>
|
369 |
| - constexpr const_sentinel<S> make_const_sentinel(S s) { return s; } // freestanding |
| 369 | + constexpr const_sentinel<S> @\libglobal{make_const_sentinel}@(S s) { return s; } // freestanding |
370 | 370 |
|
371 | 371 | // \ref{move.iterators}, move iterators and sentinels
|
372 | 372 | template<class Iterator> class move_iterator; // freestanding
|
|
4176 | 4176 |
|
4177 | 4177 | \begin{itemdecl}
|
4178 | 4178 | template<@\libconcept{indirectly_readable}@ It>
|
4179 |
| - using iter_const_reference_t = |
| 4179 | + using @\libglobal{iter_const_reference_t}@ = |
4180 | 4180 | common_reference_t<const iter_value_t<It>&&, iter_reference_t<It>>;
|
4181 | 4181 |
|
4182 | 4182 | template<class It>
|
|
0 commit comments