|
16769 | 16769 | namespace std::ranges {
|
16770 | 16770 | template<@\libconcept{input_range}@ V>
|
16771 | 16771 | requires @\libconcept{view}@<V>
|
16772 |
| - class cache_latest_view : public view_interface<cache_latest_view<V>> { |
| 16772 | + class @\libglobal{cache_latest_view}@ : public view_interface<cache_latest_view<V>> { |
16773 | 16773 | V @\exposid{base_}@ = V(); // \expos
|
16774 | 16774 | using @\exposid{cache_t}@ = conditional_t<is_reference_v<range_reference_t<V>>, // \expos
|
16775 | 16775 | add_pointer_t<range_reference_t<V>>,
|
|
16799 | 16799 | }
|
16800 | 16800 | \end{codeblock}
|
16801 | 16801 |
|
| 16802 | +\indexlibraryctor{cache_latest_view}% |
16802 | 16803 | \begin{itemdecl}
|
16803 | 16804 | constexpr explicit cache_latest_view(V base);
|
16804 | 16805 | \end{itemdecl}
|
|
16809 | 16810 | Initializes \exposid{base_} with \tcode{std::move(base)}.
|
16810 | 16811 | \end{itemdescr}
|
16811 | 16812 |
|
| 16813 | +\indexlibrarymember{begin}{cache_latest_view}% |
16812 | 16814 | \begin{itemdecl}
|
16813 | 16815 | constexpr auto begin();
|
16814 | 16816 | \end{itemdecl}
|
|
16819 | 16821 | Equivalent to: \tcode{return \exposid{iterator}(*this);}
|
16820 | 16822 | \end{itemdescr}
|
16821 | 16823 |
|
| 16824 | +\indexlibrarymember{end}{cache_latest_view}% |
16822 | 16825 | \begin{itemdecl}
|
16823 | 16826 | constexpr auto end();
|
16824 | 16827 | \end{itemdecl}
|
|
16829 | 16832 | Equivalent to: \tcode{return \exposid{sentinel}(*this);}
|
16830 | 16833 | \end{itemdescr}
|
16831 | 16834 |
|
| 16835 | +\indexlibrarymember{size}{cache_latest_view}% |
16832 | 16836 | \begin{itemdecl}
|
16833 | 16837 | constexpr auto size() requires sized_range<V>;
|
16834 | 16838 | constexpr auto size() const requires sized_range<const V>;
|
|
16878 | 16882 | }
|
16879 | 16883 | \end{codeblock}
|
16880 | 16884 |
|
| 16885 | +\indexlibraryctor{cache_latest_view::\exposid{iterator}}% |
16881 | 16886 | \begin{itemdecl}
|
16882 | 16887 | constexpr explicit @\exposid{iterator}@(cache_latest_view& parent);
|
16883 | 16888 | \end{itemdecl}
|
|
16890 | 16895 | and \exposid{parent_} with \tcode{addressof(par\-ent)}.
|
16891 | 16896 | \end{itemdescr}
|
16892 | 16897 |
|
| 16898 | +\indexlibrarymember{base}{cache_latest_view::\exposid{iterator}}% |
16893 | 16899 | \begin{itemdecl}
|
16894 | 16900 | constexpr iterator_t<V> base() &&;
|
16895 | 16901 | \end{itemdecl}
|
|
16900 | 16906 | \tcode{std::move(\exposid{current_})}.
|
16901 | 16907 | \end{itemdescr}
|
16902 | 16908 |
|
| 16909 | +\indexlibrarymember{base}{cache_latest_view::\exposid{iterator}}% |
16903 | 16910 | \begin{itemdecl}
|
16904 | 16911 | constexpr const iterator_t<V>& base() const & noexcept;
|
16905 | 16912 | \end{itemdecl}
|
|
16910 | 16917 | \exposid{current_}.
|
16911 | 16918 | \end{itemdescr}
|
16912 | 16919 |
|
| 16920 | +\indexlibrarymember{operator++}{cache_latest_view::\exposid{iterator}}% |
16913 | 16921 | \begin{itemdecl}
|
16914 | 16922 | constexpr iterator& operator++();
|
16915 | 16923 | \end{itemdecl}
|
|
16925 | 16933 | \end{codeblock}
|
16926 | 16934 | \end{itemdescr}
|
16927 | 16935 |
|
| 16936 | +\indexlibrarymember{operator++}{cache_latest_view::\exposid{iterator}}% |
16928 | 16937 | \begin{itemdecl}
|
16929 | 16938 | constexpr void operator++(int);
|
16930 | 16939 | \end{itemdecl}
|
|
16935 | 16944 | Equivalent to: \tcode{++*this}.
|
16936 | 16945 | \end{itemdescr}
|
16937 | 16946 |
|
| 16947 | +\indexlibrarymember{operator*}{cache_latest_view::\exposid{iterator}}% |
16938 | 16948 | \begin{itemdecl}
|
16939 | 16949 | constexpr range_reference_t<V>& operator*() const;
|
16940 | 16950 | \end{itemdecl}
|
|
16962 | 16972 | \end{note}
|
16963 | 16973 | \end{itemdescr}
|
16964 | 16974 |
|
| 16975 | +\indexlibrarymember{iter_move}{cache_latest_view::\exposid{iterator}}% |
16965 | 16976 | \begin{itemdecl}
|
16966 | 16977 | friend constexpr range_rvalue_reference_t<V> iter_move(const @\exposid{iterator}@& i)
|
16967 | 16978 | noexcept(noexcept(ranges::iter_move(i.@\exposid{current_}@)));
|
|
16973 | 16984 | Equivalent to: \tcode{return ranges::iter_move(i.\exposid{current_});}
|
16974 | 16985 | \end{itemdescr}
|
16975 | 16986 |
|
| 16987 | +\indexlibrarymember{iter_swap}{cache_latest_view::\exposid{iterator}}% |
16976 | 16988 | \begin{itemdecl}
|
16977 | 16989 | friend constexpr void iter_swap(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y)
|
16978 | 16990 | noexcept(noexcept(ranges::iter_swap(x.@\exposid{current_}@, y.@\exposid{current_}@)))
|
|
17012 | 17024 | }
|
17013 | 17025 | \end{codeblock}
|
17014 | 17026 |
|
| 17027 | +\indexlibraryctor{cache_latest_view::\exposid{sentinel}}% |
17015 | 17028 | \begin{itemdecl}
|
17016 | 17029 | constexpr explicit @\exposid{sentinel}@(cache_latest_view& parent);
|
17017 | 17030 | \end{itemdecl}
|
|
17022 | 17035 | Initializes \exposid{end_} with \tcode{ranges::end(parent.\exposid{base_})}.
|
17023 | 17036 | \end{itemdescr}
|
17024 | 17037 |
|
| 17038 | +\indexlibrarymember{base}{cache_latest_view::\exposid{sentinel}}% |
17025 | 17039 | \begin{itemdecl}
|
17026 | 17040 | constexpr sentinel_t<V> base() const;
|
17027 | 17041 | \end{itemdecl}
|
|
17032 | 17046 | \exposid{end_}.
|
17033 | 17047 | \end{itemdescr}
|
17034 | 17048 |
|
| 17049 | +\indexlibrarymember{operator==}{cache_latest_view::\exposid{iterator}}% |
| 17050 | +\indexlibrarymember{operator==}{cache_latest_view::\exposid{sentinel}}% |
17035 | 17051 | \begin{itemdecl}
|
17036 | 17052 | friend constexpr bool operator==(const iterator& x, const sentinel& y);
|
17037 | 17053 | \end{itemdecl}
|
|
17042 | 17058 | \tcode{x.\exposid{current_} == y.\exposid{end_}}.
|
17043 | 17059 | \end{itemdescr}
|
17044 | 17060 |
|
| 17061 | +\indexlibrarymember{operator-}{cache_latest_view::\exposid{iterator}}% |
| 17062 | +\indexlibrarymember{operator-}{cache_latest_view::\exposid{sentinel}}% |
17045 | 17063 | \begin{itemdecl}
|
17046 | 17064 | friend constexpr range_difference_t<V> operator-(const @\exposid{iterator}@& x, const @\exposid{sentinel}@& y)
|
17047 | 17065 | requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
|
|
17053 | 17071 | \tcode{x.\exposid{current_} - y.\exposid{end_}}.
|
17054 | 17072 | \end{itemdescr}
|
17055 | 17073 |
|
| 17074 | +\indexlibrarymember{operator-}{cache_latest_view::\exposid{iterator}}% |
| 17075 | +\indexlibrarymember{operator-}{cache_latest_view::\exposid{sentinel}}% |
17056 | 17076 | \begin{itemdecl}
|
17057 | 17077 | friend constexpr range_difference_t<V> operator-(const @\exposid{sentinel}@& x, const @\exposid{iterator}@& y)
|
17058 | 17078 | requires sized_sentinel_for<sentinel_t<V>, iterator_t<V>>;
|
|
0 commit comments