|
1276 | 1276 | range<T> && @\libconcept{same_as}@<iterator_t<T>, sentinel_t<T>>; |
1277 | 1277 | \end{itemdecl} |
1278 | 1278 |
|
| 1279 | +\newpage |
| 1280 | + |
1279 | 1281 | \pnum |
1280 | 1282 | The \libconcept{viewable_range} concept specifies the requirements of a |
1281 | 1283 | \libconcept{range} type that can be converted to a \libconcept{view} safely. |
|
2780 | 2782 | if (@\exposid{stream_}@) { |
2781 | 2783 | *@\exposid{stream_}@ >> @\exposid{object_}@; |
2782 | 2784 | } |
| 2785 | + |
2783 | 2786 | return @\exposid{iterator}@{*this}; |
2784 | 2787 | } |
2785 | 2788 |
|
|
2884 | 2887 | \expects |
2885 | 2888 | \tcode{\exposid{parent_}->\exposid{stream_} != nullptr} is \tcode{true}. |
2886 | 2889 |
|
| 2890 | +\newpage |
| 2891 | + |
2887 | 2892 | \pnum |
2888 | 2893 | \effects |
2889 | 2894 | Equivalent to: |
|
3439 | 3444 | \end{codeblock} |
3440 | 3445 | \end{itemdescr} |
3441 | 3446 |
|
| 3447 | +\newpage |
| 3448 | + |
3442 | 3449 | \indexlibrarymember{operator\dcr}{filter_view::iterator}% |
3443 | 3450 | \begin{itemdecl} |
3444 | 3451 | constexpr @\exposid{iterator}@& operator--() requires @\libconcept{bidirectional_range}@<V>; |
|
3579 | 3586 | \tcode{views::transform(E, F)} is expression-equivalent to |
3580 | 3587 | \tcode{transform_view\{E, F\}}. |
3581 | 3588 |
|
| 3589 | +\newpage |
| 3590 | + |
3582 | 3591 | \pnum |
3583 | 3592 | \begin{example} |
3584 | 3593 | \begin{codeblock} |
|
3850 | 3859 | \item Otherwise, \tcode{iterator_concept} denotes \tcode{input_iterator_tag}. |
3851 | 3860 | \end{itemize} |
3852 | 3861 |
|
| 3862 | +\newpage |
| 3863 | + |
3853 | 3864 | \pnum |
3854 | 3865 | \tcode{iterator::iterator_category} is defined as follows: |
3855 | 3866 | Let \tcode{C} denote the type |
|
4009 | 4020 | \end{codeblock} |
4010 | 4021 | \end{itemdescr} |
4011 | 4022 |
|
| 4023 | +\newpage |
| 4024 | + |
4012 | 4025 | \indexlibrarymember{operator-=}{transform_view::iterator}% |
4013 | 4026 | \begin{itemdecl} |
4014 | 4027 | constexpr @\exposid{iterator}@& operator-=(difference_type n) |
|
4684 | 4697 | Otherwise, \tcode{ranges::drop_view\{E, F\}}. |
4685 | 4698 | \end{itemize} |
4686 | 4699 |
|
| 4700 | +\newpage |
| 4701 | + |
4687 | 4702 | \pnum |
4688 | 4703 | \begin{example} |
4689 | 4704 | \begin{codeblock} |
|
4766 | 4781 | \exposid{count_} with \tcode{count}. |
4767 | 4782 | \end{itemdescr} |
4768 | 4783 |
|
| 4784 | +\newpage |
| 4785 | + |
4769 | 4786 | \indexlibrarymember{begin}{drop_view}% |
4770 | 4787 | \begin{itemdecl} |
4771 | 4788 | constexpr auto begin() |
|
5239 | 5256 | Equivalent to: \tcode{++*this}. |
5240 | 5257 | \end{itemdescr} |
5241 | 5258 |
|
| 5259 | +\newpage |
| 5260 | + |
5242 | 5261 | \indexlibrarymember{operator++}{join_view::iterator}% |
5243 | 5262 | \begin{itemdecl} |
5244 | 5263 | constexpr @\exposid{iterator}@ operator++(int) |
|
6262 | 6281 | \tcode{keys_view} is an alias for \tcode{elements_view<views::all_t<R>, 0>}, and |
6263 | 6282 | is useful for extracting keys from associative containers. |
6264 | 6283 |
|
| 6284 | +\newpage |
| 6285 | + |
6265 | 6286 | \begin{example} |
6266 | 6287 | \begin{codeblock} |
6267 | 6288 | auto names = keys_view{historical_figures}; |
|
6548 | 6569 | \end{codeblock} |
6549 | 6570 | \end{itemdescr} |
6550 | 6571 |
|
| 6572 | +\newpage |
| 6573 | + |
6551 | 6574 | \indexlibrarymember{operator+=}{elements_view::iterator}% |
6552 | 6575 | \begin{itemdecl} |
6553 | 6576 | constexpr @\exposid{iterator}@& operator+=(difference_type n); |
|
6700 | 6723 | Equivalent to: \tcode{return x.\exposid{current_} - y.\exposid{current_};} |
6701 | 6724 | \end{itemdescr} |
6702 | 6725 |
|
| 6726 | +\newpage |
| 6727 | + |
6703 | 6728 | \rSec3[range.elements.sentinel]{Class template \tcode{elements_view::\exposid{sentinel}}} |
6704 | 6729 |
|
6705 | 6730 | \indexlibraryglobal{elements_view::sentinel}% |
|
0 commit comments