|
1605 | 1605 | \begin{itemize}
|
1606 | 1606 | \item If \exposid{StoreSize} is \tcode{true},
|
1607 | 1607 | \begin{codeblock}
|
1608 |
| -auto d = n - ranges::advance(begin_, n, @\exposid{end_}@); |
| 1608 | +auto d = n - ranges::advance(@\exposid{begin_}@, n, @\exposid{end_}@); |
1609 | 1609 | if (d >= 0)
|
1610 | 1610 | @\exposid{size_}@ -= @\placeholdernc{make-unsigned-like}@(d);
|
1611 | 1611 | else
|
|
1614 | 1614 | \end{codeblock}
|
1615 | 1615 | \item Otherwise,
|
1616 | 1616 | \begin{codeblock}
|
1617 |
| -ranges::advance(begin_, n, @\exposid{end_}@); |
| 1617 | +ranges::advance(@\exposid{begin_}@, n, @\exposid{end_}@); |
1618 | 1618 | return *this;
|
1619 | 1619 | \end{codeblock}
|
1620 | 1620 | \end{itemize}
|
|
1898 | 1898 | requires @\exposconcept{weakly-equality-comparable-with}@<W, Bound>
|
1899 | 1899 | class iota_view : public view_interface<iota_view<W, Bound>> {
|
1900 | 1900 | private:
|
1901 |
| - // \ref{range.iota.iterator}, class \tcode{iota_view::iterator} |
| 1901 | + // \ref{range.iota.iterator}, class \tcode{iota_view::\exposid{iterator}} |
1902 | 1902 | struct @\exposid{iterator}@; // \expos
|
1903 |
| - // \ref{range.iota.sentinel}, class \tcode{iota_view::sentinel} |
| 1903 | + // \ref{range.iota.sentinel}, class \tcode{iota_view::\exposid{sentinel}} |
1904 | 1904 | struct @\exposid{sentinel}@; // \expos
|
1905 | 1905 | W @\exposid{value_}@ = W(); // \expos
|
1906 | 1906 | Bound @\exposid{bound_}@ = Bound(); // \expos
|
|
2124 | 2124 | \end{codeblock}
|
2125 | 2125 | \end{itemdescr}
|
2126 | 2126 |
|
2127 |
| -\rSec3[range.iota.iterator]{Class \tcode{iota_view::iterator}} |
| 2127 | +\rSec3[range.iota.iterator]{Class \tcode{iota_view::\exposid{iterator}}} |
2128 | 2128 |
|
2129 | 2129 | \indexlibraryglobal{iota_view::iterator}%
|
2130 | 2130 | \begin{codeblock}
|
|
2495 | 2495 | \end{codeblock}
|
2496 | 2496 | \end{itemdescr}
|
2497 | 2497 |
|
2498 |
| -\rSec3[range.iota.sentinel]{Class \tcode{iota_view::sentinel}} |
| 2498 | +\rSec3[range.iota.sentinel]{Class \tcode{iota_view::\exposid{sentinel}}} |
2499 | 2499 |
|
2500 | 2500 | \indexlibraryglobal{iota_view::sentinel}%
|
2501 | 2501 | \begin{codeblock}
|
|
2661 | 2661 | Equivalent to: \tcode{return basic_istream_view<Val, CharT, Traits>\{s\};}
|
2662 | 2662 | \end{itemdescr}
|
2663 | 2663 |
|
2664 |
| -\rSec3[range.istream.iterator]{Class template \tcode{basic_istream_view::iterator}} |
| 2664 | +\rSec3[range.istream.iterator]{Class template \tcode{basic_istream_view::\exposid{iterator}}} |
2665 | 2665 |
|
2666 | 2666 | \indexlibraryglobal{basic_istream_view::iterator}%
|
2667 | 2667 | \begin{codeblock}
|
|
2720 | 2720 | \effects
|
2721 | 2721 | Equivalent to:
|
2722 | 2722 | \begin{codeblock}
|
2723 |
| -*@\exposid{parent_}@->stream >> @\exposid{parent_}@->@\exposid{object_}@; |
| 2723 | +*@\exposid{parent_}@->@\exposid{stream_}@>> @\exposid{parent_}@->@\exposid{object_}@; |
2724 | 2724 | return *this;
|
2725 | 2725 | \end{codeblock}
|
2726 | 2726 | \end{itemdescr}
|
|
3004 | 3004 | V @\exposid{base_}@ = V(); // \expos
|
3005 | 3005 | @\placeholdernc{semiregular-box}@<Pred> @\exposid{pred_}@; // \expos
|
3006 | 3006 |
|
3007 |
| - // \ref{range.filter.iterator}, class \tcode{filter_view::iterator} |
| 3007 | + // \ref{range.filter.iterator}, class \tcode{filter_view::\exposid{iterator}} |
3008 | 3008 | class @\exposid{iterator}@; // \expos
|
3009 |
| - // \ref{range.filter.sentinel}, class \tcode{filter_view::sentinel} |
| 3009 | + // \ref{range.filter.sentinel}, class \tcode{filter_view::\exposid{sentinel}} |
3010 | 3010 | class @\exposid{sentinel}@; // \expos
|
3011 | 3011 |
|
3012 | 3012 | public:
|
|
3082 | 3082 | \tcode{filter_view} for use on subsequent calls.
|
3083 | 3083 | \end{itemdescr}
|
3084 | 3084 |
|
3085 |
| -\rSec3[range.filter.iterator]{Class \tcode{filter_view::iterator}} |
| 3085 | +\rSec3[range.filter.iterator]{Class \tcode{filter_view::\exposid{iterator}}} |
3086 | 3086 |
|
3087 | 3087 | \indexlibrarymember{iterator}{filter_view}%
|
3088 | 3088 | \begin{codeblock}
|
|
3122 | 3122 | noexcept(noexcept(ranges::iter_move(i.@\exposid{current_}@)));
|
3123 | 3123 | friend constexpr void iter_swap(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y)
|
3124 | 3124 | noexcept(noexcept(ranges::iter_swap(x.@\exposid{current_}@, y.@\exposid{current_}@)))
|
3125 |
| - requires indirectly_swappable<@\exposid{iterator}@_t<V>>; |
| 3125 | + requires indirectly_swappable<iterator_t<V>>; |
3126 | 3126 | };
|
3127 | 3127 | }
|
3128 | 3128 | \end{codeblock}
|
3129 | 3129 |
|
3130 | 3130 | \pnum
|
3131 |
| -Modification of the element a \tcode{filter_view::iterator} denotes is |
| 3131 | +Modification of the element a \tcode{filter_view::\exposid{iterator}} denotes is |
3132 | 3132 | permitted, but results in undefined behavior if the resulting value does not
|
3133 | 3133 | satisfy the filter predicate.
|
3134 | 3134 |
|
|
3332 | 3332 | Equivalent to \tcode{ranges::iter_swap(x.\exposid{current_}, y.\exposid{current_})}.
|
3333 | 3333 | \end{itemdescr}
|
3334 | 3334 |
|
3335 |
| -\rSec3[range.filter.sentinel]{Class \tcode{filter_view::sentinel}} |
| 3335 | +\rSec3[range.filter.sentinel]{Class \tcode{filter_view::\exposid{sentinel}}} |
3336 | 3336 |
|
3337 | 3337 | \indexlibrarymember{sentinel}{filter_view}%
|
3338 | 3338 | \begin{codeblock}
|
|
3360 | 3360 | \begin{itemdescr}
|
3361 | 3361 | \pnum
|
3362 | 3362 | \effects
|
3363 |
| -Initializes \exposid{end_} with \tcode{ranges::end(\exposid{parent_}.\exposid{base_})}. |
| 3363 | +Initializes \exposid{end_} with \tcode{ranges::end(parent.\exposid{base_})}. |
3364 | 3364 | \end{itemdescr}
|
3365 | 3365 |
|
3366 | 3366 | \indexlibrarymember{base}{filter_view::sentinel}%
|
|
3426 | 3426 | regular_invocable<F&, range_reference_t<V>>
|
3427 | 3427 | class transform_view : public view_interface<transform_view<V, F>> {
|
3428 | 3428 | private:
|
3429 |
| - // \ref{range.transform.iterator}, class template \tcode{transform_view::iterator} |
| 3429 | + // \ref{range.transform.iterator}, class template \tcode{transform_view::\exposid{iterator}} |
3430 | 3430 | template<bool> struct @\exposid{iterator}@; // \expos
|
3431 |
| - // \ref{range.transform.sentinel}, class template \tcode{transform_view::sentinel} |
| 3431 | + // \ref{range.transform.sentinel}, class template \tcode{transform_view::\exposid{sentinel}} |
3432 | 3432 | template<bool> struct @\exposid{sentinel}@; // \expos
|
3433 | 3433 |
|
3434 | 3434 | V @\exposid{base_}@ = V(); // \expos
|
|
3584 | 3584 | \end{codeblock}
|
3585 | 3585 | \end{itemdescr}
|
3586 | 3586 |
|
3587 |
| -\rSec3[range.transform.iterator]{Class template \tcode{transform_view::iterator}} |
| 3587 | +\rSec3[range.transform.iterator]{Class template \tcode{transform_view::\exposid{iterator}}} |
3588 | 3588 |
|
3589 | 3589 | \indexlibraryglobal{transform_view::iterator}%
|
3590 | 3590 | \begin{codeblock}
|
|
3609 | 3609 |
|
3610 | 3610 | @\exposid{iterator}@() = default;
|
3611 | 3611 | constexpr @\exposid{iterator}@(@\exposid{Parent}@& parent, iterator_t<@\exposid{Base}@> current);
|
3612 |
| - constexpr @\exposid{iterator}@(iterator<!Const> i) |
| 3612 | + constexpr @\exposid{iterator}@(@\exposid{iterator}@<!Const> i) |
3613 | 3613 | requires Const && convertible_to<iterator_t<V>, iterator_t<@\exposid{Base}@>>;
|
3614 | 3614 |
|
3615 | 3615 | constexpr iterator_t<@\exposid{Base}@> base() const &
|
|
3975 | 3975 | \end{itemdescr}
|
3976 | 3976 |
|
3977 | 3977 |
|
3978 |
| -\rSec3[range.transform.sentinel]{Class template \tcode{transform_view::sentinel}} |
| 3978 | +\rSec3[range.transform.sentinel]{Class template \tcode{transform_view::\exposid{sentinel}}} |
3979 | 3979 |
|
3980 | 3980 | \indexlibraryglobal{transform_view::sentinel}%
|
3981 | 3981 | \begin{codeblock}
|
|
4122 | 4122 | private:
|
4123 | 4123 | V @\exposid{base_}@ = V(); // \expos
|
4124 | 4124 | range_difference_t<V> @\exposid{count_}@ = 0; // \expos
|
4125 |
| - // \ref{range.take.sentinel}, class template \tcode{take_view::sentinel} |
| 4125 | + // \ref{range.take.sentinel}, class template \tcode{take_view::\exposid{sentinel}} |
4126 | 4126 | template<bool> struct @\exposid{sentinel}@; // \expos
|
4127 | 4127 | public:
|
4128 | 4128 | take_view() = default;
|
|
4217 | 4217 | and \exposid{count_} with \tcode{count}.
|
4218 | 4218 | \end{itemdescr}
|
4219 | 4219 |
|
4220 |
| -\rSec3[range.take.sentinel]{Class template \tcode{take_view::sentinel}} |
| 4220 | +\rSec3[range.take.sentinel]{Class template \tcode{take_view::\exposid{sentinel}}} |
4221 | 4221 |
|
4222 | 4222 | \indexlibraryglobal{take_view::sentinel}%
|
4223 | 4223 | \begin{codeblock}
|
|
4227 | 4227 | class take_view<V>::@\exposid{sentinel}@ {
|
4228 | 4228 | private:
|
4229 | 4229 | using @\exposid{Base}@ = conditional_t<Const, const V, V>; // \expos
|
4230 |
| - using CI = counted_iterator<iterator_t<@\exposid{Base}@>>; // \expos |
| 4230 | + using @\exposid{CI}@ = counted_iterator<iterator_t<@\exposid{Base}@>>; // \expos |
4231 | 4231 | sentinel_t<@\exposid{Base}@> @\exposid{end_}@ = sentinel_t<@\exposid{Base}@>(); // \expos
|
4232 | 4232 | public:
|
4233 | 4233 | @\exposid{sentinel}@() = default;
|
|
4237 | 4237 |
|
4238 | 4238 | constexpr sentinel_t<@\exposid{Base}@> base() const;
|
4239 | 4239 |
|
4240 |
| - friend constexpr bool operator==(const CI& y, const @\exposid{sentinel}@& x); |
| 4240 | + friend constexpr bool operator==(const @\exposid{CI}@& y, const @\exposid{sentinel}@& x); |
4241 | 4241 | };
|
4242 | 4242 | }
|
4243 | 4243 | \end{codeblock}
|
|
4278 | 4278 |
|
4279 | 4279 | \indexlibrarymember{operator==}{take_view::sentinel}%
|
4280 | 4280 | \begin{itemdecl}
|
4281 |
| -friend constexpr bool operator==(const CI& y, const @\exposid{sentinel}@& x); |
| 4281 | +friend constexpr bool operator==(const @\exposid{CI}@& y, const @\exposid{sentinel}@& x); |
4282 | 4282 | \end{itemdecl}
|
4283 | 4283 |
|
4284 | 4284 | \begin{itemdescr}
|
|
4388 | 4388 | Equivalent to: \tcode{return *\exposid{pred_};}
|
4389 | 4389 | \end{itemdescr}
|
4390 | 4390 |
|
4391 |
| -\rSec3[range.take.while.sentinel]{Class template \tcode{take_while_view::sentinel}} |
| 4391 | +\rSec3[range.take.while.sentinel]{Class template \tcode{take_while_view::\exposid{sentinel}}} |
4392 | 4392 |
|
4393 | 4393 | \indexlibraryglobal{take_while_view::sentinel}%
|
4394 | 4394 | \begin{codeblock}
|
|
4732 | 4732 | private:
|
4733 | 4733 | using @\exposid{InnerRng}@ = // \expos
|
4734 | 4734 | range_reference_t<V>;
|
4735 |
| - // \ref{range.join.iterator}, class template \tcode{join_view::iterator} |
| 4735 | + // \ref{range.join.iterator}, class template \tcode{join_view::\exposid{iterator}} |
4736 | 4736 | template<bool Const>
|
4737 | 4737 | struct @\exposid{iterator}@; // \expos
|
4738 |
| - // \ref{range.join.sentinel}, class template \tcode{join_view::sentinel} |
| 4738 | + // \ref{range.join.sentinel}, class template \tcode{join_view::\exposid{sentinel}} |
4739 | 4739 | template<bool Const>
|
4740 | 4740 | struct @\exposid{sentinel}@; // \expos
|
4741 | 4741 |
|
|
4815 | 4815 | Initializes \exposid{base_} with \tcode{views::all(std::forward<R>(r))}.
|
4816 | 4816 | \end{itemdescr}
|
4817 | 4817 |
|
4818 |
| -\rSec3[range.join.iterator]{Class template \tcode{join_view::iterator}} |
| 4818 | +\rSec3[range.join.iterator]{Class template \tcode{join_view::\exposid{iterator}}} |
4819 | 4819 |
|
4820 | 4820 | \indexlibraryglobal{join_view::iterator}%
|
4821 | 4821 | \begin{codeblock}
|
|
5120 | 5120 | Equivalent to: \tcode{return ranges::iter_swap(x.\exposid{inner_}, y.\exposid{inner_});}
|
5121 | 5121 | \end{itemdescr}
|
5122 | 5122 |
|
5123 |
| -\rSec3[range.join.sentinel]{Class template \tcode{join_view::sentinel}} |
| 5123 | +\rSec3[range.join.sentinel]{Class template \tcode{join_view::\exposid{sentinel}}} |
5124 | 5124 |
|
5125 | 5125 | \indexlibraryglobal{join_view::sentinel}%
|
5126 | 5126 | \begin{codeblock}
|
|
5168 | 5168 | Initializes \exposid{end_} with \tcode{std::move(s.\exposid{end_})}.
|
5169 | 5169 | \end{itemdescr}
|
5170 | 5170 |
|
5171 |
| -\indexlibrarymember{operator==}{join_view::sentinel}% |
| 5171 | +\indexlibrarymember{operator==}{join_view::sentinel}%3431 |
| 5172 | + |
5172 | 5173 | \begin{itemdecl}
|
5173 | 5174 | friend constexpr bool operator==(const @\exposid{iterator}@<Const>& x, const @\exposid{sentinel}@& y);
|
5174 | 5175 | \end{itemdecl}
|
|
5236 | 5237 | V @\exposid{base_}@ = V(); // \expos
|
5237 | 5238 | Pattern @\exposid{pattern_}@ = Pattern(); // \expos
|
5238 | 5239 | iterator_t<V> @\exposid{current_}@ = iterator_t<V>(); // \expos, present only if \tcode{!forward_range<V>}
|
5239 |
| - // \ref{range.split.outer}, class template \tcode{split_view::outer_iterator} |
| 5240 | + // \ref{range.split.outer}, class template \tcode{split_view::\exposid{outer-iterator}} |
5240 | 5241 | template<bool> struct @\exposid{outer-iterator}@; // \expos
|
5241 |
| - // \ref{range.split.inner}, class template \tcode{split_view::inner_iterator} |
| 5242 | + // \ref{range.split.inner}, class template \tcode{split_view::\exposid{inner-iterator}} |
5242 | 5243 | template<bool> struct @\exposid{inner-iterator}@; // \expos
|
5243 | 5244 | public:
|
5244 | 5245 | split_view() = default;
|
|
5333 | 5334 | \exposid{pattern_} with \tcode{single_view\{\brk{}std::move(e)\}}.
|
5334 | 5335 | \end{itemdescr}
|
5335 | 5336 |
|
5336 |
| -\rSec3[range.split.outer]{Class template \tcode{split_view::outer_iterator}} |
| 5337 | +\rSec3[range.split.outer]{Class template \tcode{split_view::\exposid{outer-iterator}}} |
5337 | 5338 |
|
5338 | 5339 | \indexlibraryglobal{split_view::outer_iterator}%
|
5339 | 5340 | \begin{codeblock}
|
|
5354 | 5355 | using iterator_concept =
|
5355 | 5356 | conditional_t<forward_range<@\exposid{Base}@>, forward_iterator_tag, input_iterator_tag>;
|
5356 | 5357 | using iterator_category = input_iterator_tag;
|
5357 |
| - // \ref{range.split.outer.value}, class \tcode{split_view::outer_iterator::value_type} |
| 5358 | + // \ref{range.split.outer.value}, class \tcode{split_view::\exposid{outer-iterator}::value_type} |
5358 | 5359 | struct value_type;
|
5359 | 5360 | using difference_type = range_difference_t<@\exposid{Base}@>;
|
5360 | 5361 |
|
|
5388 | 5389 |
|
5389 | 5390 | \pnum
|
5390 | 5391 | Many of the following specifications refer to the notional member
|
5391 |
| -\exposid{current_} of \tcode{outer_iterator}. |
| 5392 | +\exposid{current_} of \exposid{outer-iterator}. |
5392 | 5393 | \exposid{current_} is equivalent to \exposid{current_} if \tcode{V}
|
5393 |
| -models \libconcept{forward_range}, and \tcode{\exposid{parent_}->current_} otherwise. |
| 5394 | +models \libconcept{forward_range}, and \tcode{\exposid{parent_}->\exposid{current_}} otherwise. |
5394 | 5395 |
|
5395 | 5396 | \indexlibraryctor{split_view::outer_iterator}%
|
5396 | 5397 | \begin{itemdecl}
|
|
5491 | 5492 | Equivalent to: \tcode{return x.\exposid{current_} == ranges::end(x.\exposid{parent_}->\exposid{base_});}
|
5492 | 5493 | \end{itemdescr}
|
5493 | 5494 |
|
5494 |
| -\rSec3[range.split.outer.value]{Class \tcode{split_view::outer_iterator::value_type}} |
| 5495 | +\rSec3[range.split.outer.value]{Class \tcode{split_view::\exposid{outer-iterator}::value_type}} |
5495 | 5496 |
|
5496 | 5497 | \indexlibraryglobal{split_view::outer_iterator::value_type}%
|
5497 | 5498 | \begin{codeblock}
|
|
5532 | 5533 | \begin{itemdescr}
|
5533 | 5534 | \pnum
|
5534 | 5535 | \effects
|
5535 |
| -Equivalent to: \tcode{return inner_iterator<Const>\{i_\};} |
| 5536 | +Equivalent to: \tcode{return \exposid{inner-iterator}<Const>\{\exposid{i_}\};} |
5536 | 5537 | \end{itemdescr}
|
5537 | 5538 |
|
5538 | 5539 | \indexlibrarymember{begin}{split_view::outer_iterator::value_type}%
|
|
5543 | 5544 | \begin{itemdescr}
|
5544 | 5545 | \pnum
|
5545 | 5546 | \effects
|
5546 |
| -Equivalent to: \tcode{return inner_iterator<Const>\{std::move(i_)\};} |
| 5547 | +Equivalent to: \tcode{return \exposid{inner-iterator}<Const>\{std::move(\exposid{i_})\};} |
5547 | 5548 | \end{itemdescr}
|
5548 | 5549 | \indexlibrarymember{end}{split_view::outer_iterator::value_type}%
|
5549 | 5550 | \begin{itemdecl}
|
|
5556 | 5557 | Equivalent to: \tcode{return default_sentinel;}
|
5557 | 5558 | \end{itemdescr}
|
5558 | 5559 |
|
5559 |
| -\rSec3[range.split.inner]{Class template \tcode{split_view::inner_iterator}} |
| 5560 | +\rSec3[range.split.inner]{Class template \tcode{split_view::\exposid{inner-iterator}}} |
5560 | 5561 |
|
5561 | 5562 | \indexlibraryglobal{split_view::inner_iterator}%
|
5562 | 5563 | \begin{codeblock}
|
|
6178 | 6179 | Initializes \exposid{base_} with \tcode{std::move(base)}.
|
6179 | 6180 | \end{itemdescr}
|
6180 | 6181 |
|
6181 |
| -\rSec3[range.elements.iterator]{Class template \tcode{elements_view::iterator}} |
| 6182 | +\rSec3[range.elements.iterator]{Class template \tcode{elements_view::\exposid{iterator}}} |
6182 | 6183 |
|
6183 | 6184 | \indexlibraryglobal{elements_view::iterator}%
|
6184 | 6185 | \begin{codeblock}
|
|
0 commit comments