|
1695 | 1695 | }
|
1696 | 1696 |
|
1697 | 1697 | constexpr auto cbegin() {
|
1698 |
| - return ranges::cbegin(@\exposid{derived}@()); |
| 1698 | + return ranges::cbegin(@\exposid{derived}@()); |
1699 | 1699 | }
|
1700 | 1700 | constexpr auto cbegin() const requires @\libconcept{range}@<const D> {
|
1701 |
| - return ranges::cbegin(@\exposid{derived}@()); |
| 1701 | + return ranges::cbegin(@\exposid{derived}@()); |
1702 | 1702 | }
|
1703 | 1703 | constexpr auto cend() {
|
1704 |
| - return ranges::cend(@\exposid{derived}@()); |
| 1704 | + return ranges::cend(@\exposid{derived}@()); |
1705 | 1705 | }
|
1706 | 1706 | constexpr auto cend() const requires @\libconcept{range}@<const D> {
|
1707 |
| - return ranges::cend(@\exposid{derived}@()); |
| 1707 | + return ranges::cend(@\exposid{derived}@()); |
1708 | 1708 | }
|
1709 | 1709 |
|
1710 | 1710 | constexpr explicit operator bool()
|
|
4481 | 4481 | constexpr V base() && { return std::move(@\exposid{base_}@); }
|
4482 | 4482 |
|
4483 | 4483 | constexpr auto begin() requires (!@\exposconcept{simple-view}@<V>)
|
4484 |
| - { return move_iterator(ranges::begin(@\exposid{base_}@)); } |
| 4484 | + { return move_iterator(ranges::begin(@\exposid{base_}@)); } |
4485 | 4485 | constexpr auto begin() const requires @\libconcept{range}@<const V>
|
4486 |
| - { return move_iterator(ranges::begin(@\exposid{base_}@)); } |
| 4486 | + { return move_iterator(ranges::begin(@\exposid{base_}@)); } |
4487 | 4487 |
|
4488 | 4488 | constexpr auto end() requires (!@\exposconcept{simple-view}@<V>) {
|
4489 | 4489 | if constexpr (@\libconcept{common_range}@<V>) {
|
|
7039 | 7039 |
|
7040 | 7040 | @\exposid{iterator}@() requires @\libconcept{default_initializable}@<@\exposid{OuterIter}@> = default;
|
7041 | 7041 | constexpr @\exposid{iterator}@(@\exposid{iterator}@<!Const> i)
|
7042 |
| - requires Const && @\libconcept{convertible_to}@<iterator_t<V>, @\exposid{OuterIter}@> && |
7043 |
| - @\libconcept{convertible_to}@<iterator_t<@\exposid{InnerRng}@>, @\exposid{InnerIter}@> && |
7044 |
| - @\libconcept{convertible_to}@<iterator_t<Pattern>, @\exposid{PatternIter}@>; |
| 7042 | + requires Const && @\libconcept{convertible_to}@<iterator_t<V>, @\exposid{OuterIter}@> && |
| 7043 | + @\libconcept{convertible_to}@<iterator_t<@\exposid{InnerRng}@>, @\exposid{InnerIter}@> && |
| 7044 | + @\libconcept{convertible_to}@<iterator_t<Pattern>, @\exposid{PatternIter}@>; |
7045 | 7045 |
|
7046 | 7046 | constexpr decltype(auto) operator*() const;
|
7047 | 7047 |
|
7048 | 7048 | constexpr @\exposid{iterator}@& operator++();
|
7049 | 7049 | constexpr void operator++(int);
|
7050 | 7050 | constexpr @\exposid{iterator}@ operator++(int)
|
7051 |
| - requires @\exposid{ref-is-glvalue}@ && @\libconcept{forward_iterator}@<@\exposid{OuterIter}@> && |
7052 |
| - @\libconcept{forward_iterator}@<@\exposid{InnerIter}@>; |
| 7051 | + requires @\exposid{ref-is-glvalue}@ && @\libconcept{forward_iterator}@<@\exposid{OuterIter}@> && |
| 7052 | + @\libconcept{forward_iterator}@<@\exposid{InnerIter}@>; |
7053 | 7053 |
|
7054 | 7054 | constexpr @\exposid{iterator}@& operator--()
|
7055 |
| - requires @\exposid{ref-is-glvalue}@ && @\libconcept{bidirectional_range}@<@\exposid{Base}@> && |
7056 |
| - @\exposconcept{bidirectional-common}@<@\exposid{InnerBase}@> && @\exposconcept{bidirectional-common}@<@\exposid{PatternBase}@>; |
| 7055 | + requires @\exposid{ref-is-glvalue}@ && @\libconcept{bidirectional_range}@<@\exposid{Base}@> && |
| 7056 | + @\exposconcept{bidirectional-common}@<@\exposid{InnerBase}@> && @\exposconcept{bidirectional-common}@<@\exposid{PatternBase}@>; |
7057 | 7057 | constexpr @\exposid{iterator}@ operator--(int)
|
7058 |
| - requires @\exposid{ref-is-glvalue}@ && @\libconcept{bidirectional_range}@<@\exposid{Base}@> && |
7059 |
| - @\exposconcept{bidirectional-common}@<@\exposid{InnerBase}@> && @\exposconcept{bidirectional-common}@<@\exposid{PatternBase}@>; |
| 7058 | + requires @\exposid{ref-is-glvalue}@ && @\libconcept{bidirectional_range}@<@\exposid{Base}@> && |
| 7059 | + @\exposconcept{bidirectional-common}@<@\exposid{InnerBase}@> && @\exposconcept{bidirectional-common}@<@\exposid{PatternBase}@>; |
7060 | 7060 |
|
7061 | 7061 | friend constexpr bool operator==(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y)
|
7062 |
| - requires @\exposid{ref-is-glvalue}@ && @\libconcept{equality_comparable}@<@\exposid{OuterIter}@> && |
7063 |
| - @\libconcept{equality_comparable}@<@\exposid{InnerIter}@>; |
| 7062 | + requires @\exposid{ref-is-glvalue}@ && @\libconcept{equality_comparable}@<@\exposid{OuterIter}@> && |
| 7063 | + @\libconcept{equality_comparable}@<@\exposid{InnerIter}@>; |
7064 | 7064 |
|
7065 | 7065 | friend constexpr decltype(auto) iter_move(const @\exposid{iterator}@& x) {
|
7066 | 7066 | using rvalue_reference = common_reference_t<
|
|
7070 | 7070 | }
|
7071 | 7071 |
|
7072 | 7072 | friend constexpr void iter_swap(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y)
|
7073 |
| - requires @\libconcept{indirectly_swappable}@<@\exposid{InnerIter}@, @\exposid{PatternIter}@> { |
| 7073 | + requires @\libconcept{indirectly_swappable}@<@\exposid{InnerIter}@, @\exposid{PatternIter}@> { |
7074 | 7074 | visit(ranges::iter_swap, x.@\exposid{inner_it_}@, y.@\exposid{inner_it_}@);
|
7075 | 7075 | }
|
7076 | 7076 | };
|
|
11197 | 11197 | \begin{codeblock}
|
11198 | 11198 | namespace std::ranges {
|
11199 | 11199 | template<@\libconcept{forward_range}@ V, @\libconcept{move_constructible}@ F, size_t N>
|
11200 |
| - requires @\libconcept{view}@<V> && (N > 0) && is_object_v<F> && |
11201 |
| - @\libconcept{regular_invocable}@<F&, @\exposid{REPEAT}@(range_reference_t<V>, N)...> && |
11202 |
| - @\exposconcept{can-reference}@<invoke_result_t<F&, @\exposid{REPEAT}@(range_reference_t<V>, N)...>> |
| 11200 | + requires @\libconcept{view}@<V> && (N > 0) && is_object_v<F> && |
| 11201 | + @\libconcept{regular_invocable}@<F&, @\exposid{REPEAT}@(range_reference_t<V>, N)...> && |
| 11202 | + @\exposconcept{can-reference}@<invoke_result_t<F&, @\exposid{REPEAT}@(range_reference_t<V>, N)...>> |
11203 | 11203 | class adjacent_transform_view : public view_interface<adjacent_transform_view<V, F, N>> {
|
11204 | 11204 | @\exposidnc{movable-box}@<F> @\exposid{fun_}@; // \expos
|
11205 | 11205 | adjacent_view<V, N> @\exposid{inner_}@; // \expos
|
|
13803 | 13803 | requires @\libconcept{random_access_range}@<@\exposid{Base}@>;
|
13804 | 13804 |
|
13805 | 13805 | friend constexpr auto operator<=>(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y)
|
13806 |
| - requires @\libconcept{random_access_range}@<@\exposid{Base}@> && @\libconcept{three_way_comparable}@<iterator_t<@\exposid{Base}@>>; |
| 13806 | + requires @\libconcept{random_access_range}@<@\exposid{Base}@> && @\libconcept{three_way_comparable}@<iterator_t<@\exposid{Base}@>>; |
13807 | 13807 |
|
13808 | 13808 | friend constexpr @\exposid{iterator}@ operator+(const @\exposid{iterator}@& x, difference_type n)
|
13809 | 13809 | requires @\libconcept{random_access_range}@<@\exposid{Base}@>;
|
|
0 commit comments