diff --git a/source/ranges.tex b/source/ranges.tex index 6c60ff74a1..f1dd433062 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -1605,7 +1605,7 @@ \begin{itemize} \item If \exposid{StoreSize} is \tcode{true}, \begin{codeblock} -auto d = n - ranges::advance(begin_, n, @\exposid{end_}@); +auto d = n - ranges::advance(@\exposid{begin_}@, n, @\exposid{end_}@); if (d >= 0) @\exposid{size_}@ -= @\placeholdernc{make-unsigned-like}@(d); else @@ -1614,7 +1614,7 @@ \end{codeblock} \item Otherwise, \begin{codeblock} -ranges::advance(begin_, n, @\exposid{end_}@); +ranges::advance(@\exposid{begin_}@, n, @\exposid{end_}@); return *this; \end{codeblock} \end{itemize} @@ -1898,9 +1898,9 @@ requires @\exposconcept{weakly-equality-comparable-with}@ class iota_view : public view_interface> { private: - // \ref{range.iota.iterator}, class \tcode{iota_view::iterator} + // \ref{range.iota.iterator}, class \tcode{iota_view::\exposid{iterator}} struct @\exposid{iterator}@; // \expos - // \ref{range.iota.sentinel}, class \tcode{iota_view::sentinel} + // \ref{range.iota.sentinel}, class \tcode{iota_view::\exposid{sentinel}} struct @\exposid{sentinel}@; // \expos W @\exposid{value_}@ = W(); // \expos Bound @\exposid{bound_}@ = Bound(); // \expos @@ -2124,7 +2124,7 @@ \end{codeblock} \end{itemdescr} -\rSec3[range.iota.iterator]{Class \tcode{iota_view::iterator}} +\rSec3[range.iota.iterator]{Class \tcode{iota_view::\exposid{iterator}}} \indexlibraryglobal{iota_view::iterator}% \begin{codeblock} @@ -2495,7 +2495,7 @@ \end{codeblock} \end{itemdescr} -\rSec3[range.iota.sentinel]{Class \tcode{iota_view::sentinel}} +\rSec3[range.iota.sentinel]{Class \tcode{iota_view::\exposid{sentinel}}} \indexlibraryglobal{iota_view::sentinel}% \begin{codeblock} @@ -2661,7 +2661,7 @@ Equivalent to: \tcode{return basic_istream_view\{s\};} \end{itemdescr} -\rSec3[range.istream.iterator]{Class template \tcode{basic_istream_view::iterator}} +\rSec3[range.istream.iterator]{Class template \tcode{basic_istream_view::\exposid{iterator}}} \indexlibraryglobal{basic_istream_view::iterator}% \begin{codeblock} @@ -2720,7 +2720,7 @@ \effects Equivalent to: \begin{codeblock} -*@\exposid{parent_}@->stream >> @\exposid{parent_}@->@\exposid{object_}@; +*@\exposid{parent_}@->@\exposid{stream_}@>> @\exposid{parent_}@->@\exposid{object_}@; return *this; \end{codeblock} \end{itemdescr} @@ -3004,9 +3004,9 @@ V @\exposid{base_}@ = V(); // \expos @\placeholdernc{semiregular-box}@ @\exposid{pred_}@; // \expos - // \ref{range.filter.iterator}, class \tcode{filter_view::iterator} + // \ref{range.filter.iterator}, class \tcode{filter_view::\exposid{iterator}} class @\exposid{iterator}@; // \expos - // \ref{range.filter.sentinel}, class \tcode{filter_view::sentinel} + // \ref{range.filter.sentinel}, class \tcode{filter_view::\exposid{sentinel}} class @\exposid{sentinel}@; // \expos public: @@ -3071,7 +3071,7 @@ \pnum \returns -\tcode{\{*this, ranges::find_if(\exposid{base_}, ref(*pred_))\}}. +\tcode{\{*this, ranges::find_if(\exposid{base_}, ref(*\exposid{pred_}))\}}. \pnum \remarks @@ -3082,7 +3082,7 @@ \tcode{filter_view} for use on subsequent calls. \end{itemdescr} -\rSec3[range.filter.iterator]{Class \tcode{filter_view::iterator}} +\rSec3[range.filter.iterator]{Class \tcode{filter_view::\exposid{iterator}}} \indexlibrarymember{iterator}{filter_view}% \begin{codeblock} @@ -3122,13 +3122,13 @@ noexcept(noexcept(ranges::iter_move(i.@\exposid{current_}@))); friend constexpr void iter_swap(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y) noexcept(noexcept(ranges::iter_swap(x.@\exposid{current_}@, y.@\exposid{current_}@))) - requires indirectly_swappable<@\exposid{iterator}@_t>; + requires indirectly_swappable>; }; } \end{codeblock} \pnum -Modification of the element a \tcode{filter_view::iterator} denotes is +Modification of the element a \tcode{filter_view::\exposid{iterator}} denotes is permitted, but results in undefined behavior if the resulting value does not satisfy the filter predicate. @@ -3332,7 +3332,7 @@ Equivalent to \tcode{ranges::iter_swap(x.\exposid{current_}, y.\exposid{current_})}. \end{itemdescr} -\rSec3[range.filter.sentinel]{Class \tcode{filter_view::sentinel}} +\rSec3[range.filter.sentinel]{Class \tcode{filter_view::\exposid{sentinel}}} \indexlibrarymember{sentinel}{filter_view}% \begin{codeblock} @@ -3360,7 +3360,7 @@ \begin{itemdescr} \pnum \effects -Initializes \exposid{end_} with \tcode{ranges::end(\exposid{parent_}.\exposid{base_})}. +Initializes \exposid{end_} with \tcode{ranges::end(parent.\exposid{base_})}. \end{itemdescr} \indexlibrarymember{base}{filter_view::sentinel}% @@ -3426,9 +3426,9 @@ regular_invocable> class transform_view : public view_interface> { private: - // \ref{range.transform.iterator}, class template \tcode{transform_view::iterator} + // \ref{range.transform.iterator}, class template \tcode{transform_view::\exposid{iterator}} template struct @\exposid{iterator}@; // \expos - // \ref{range.transform.sentinel}, class template \tcode{transform_view::sentinel} + // \ref{range.transform.sentinel}, class template \tcode{transform_view::\exposid{sentinel}} template struct @\exposid{sentinel}@; // \expos V @\exposid{base_}@ = V(); // \expos @@ -3584,7 +3584,7 @@ \end{codeblock} \end{itemdescr} -\rSec3[range.transform.iterator]{Class template \tcode{transform_view::iterator}} +\rSec3[range.transform.iterator]{Class template \tcode{transform_view::\exposid{iterator}}} \indexlibraryglobal{transform_view::iterator}% \begin{codeblock} @@ -3609,7 +3609,7 @@ @\exposid{iterator}@() = default; constexpr @\exposid{iterator}@(@\exposid{Parent}@& parent, iterator_t<@\exposid{Base}@> current); - constexpr @\exposid{iterator}@(iterator i) + constexpr @\exposid{iterator}@(@\exposid{iterator}@ i) requires Const && convertible_to, iterator_t<@\exposid{Base}@>>; constexpr iterator_t<@\exposid{Base}@> base() const & @@ -3975,7 +3975,7 @@ \end{itemdescr} -\rSec3[range.transform.sentinel]{Class template \tcode{transform_view::sentinel}} +\rSec3[range.transform.sentinel]{Class template \tcode{transform_view::\exposid{sentinel}}} \indexlibraryglobal{transform_view::sentinel}% \begin{codeblock} @@ -4122,7 +4122,7 @@ private: V @\exposid{base_}@ = V(); // \expos range_difference_t @\exposid{count_}@ = 0; // \expos - // \ref{range.take.sentinel}, class template \tcode{take_view::sentinel} + // \ref{range.take.sentinel}, class template \tcode{take_view::\exposid{sentinel}} template struct @\exposid{sentinel}@; // \expos public: take_view() = default; @@ -4217,7 +4217,7 @@ and \exposid{count_} with \tcode{count}. \end{itemdescr} -\rSec3[range.take.sentinel]{Class template \tcode{take_view::sentinel}} +\rSec3[range.take.sentinel]{Class template \tcode{take_view::\exposid{sentinel}}} \indexlibraryglobal{take_view::sentinel}% \begin{codeblock} @@ -4227,7 +4227,7 @@ class take_view::@\exposid{sentinel}@ { private: using @\exposid{Base}@ = conditional_t; // \expos - using CI = counted_iterator>; // \expos + using @\exposid{CI}@ = counted_iterator>; // \expos sentinel_t<@\exposid{Base}@> @\exposid{end_}@ = sentinel_t<@\exposid{Base}@>(); // \expos public: @\exposid{sentinel}@() = default; @@ -4237,7 +4237,7 @@ constexpr sentinel_t<@\exposid{Base}@> base() const; - friend constexpr bool operator==(const CI& y, const @\exposid{sentinel}@& x); + friend constexpr bool operator==(const @\exposid{CI}@& y, const @\exposid{sentinel}@& x); }; } \end{codeblock} @@ -4278,7 +4278,7 @@ \indexlibrarymember{operator==}{take_view::sentinel}% \begin{itemdecl} -friend constexpr bool operator==(const CI& y, const @\exposid{sentinel}@& x); +friend constexpr bool operator==(const @\exposid{CI}@& y, const @\exposid{sentinel}@& x); \end{itemdecl} \begin{itemdescr} @@ -4388,7 +4388,7 @@ Equivalent to: \tcode{return *\exposid{pred_};} \end{itemdescr} -\rSec3[range.take.while.sentinel]{Class template \tcode{take_while_view::sentinel}} +\rSec3[range.take.while.sentinel]{Class template \tcode{take_while_view::\exposid{sentinel}}} \indexlibraryglobal{take_while_view::sentinel}% \begin{codeblock} @@ -4434,7 +4434,7 @@ \pnum \effects Initializes \exposid{end_} with \tcode{s.\exposid{end_}} and -\exposid{pred_} with \tcode{s.pred_}. +\exposid{pred_} with \tcode{s.\exposid{pred_}}. \end{itemdescr} \indexlibrarymember{operator==}{take_while_view::sentinel}% @@ -4446,7 +4446,7 @@ \pnum \effects Equivalent to: -\tcode{return y.\exposid{end_} == x || !invoke(*y.pred_, *x);} +\tcode{return y.\exposid{end_} == x || !invoke(*y.\exposid{pred_}, *x);} \end{itemdescr} \rSec3[range.take.while.adaptor]{\tcode{views::take_while}} @@ -4732,10 +4732,10 @@ private: using @\exposid{InnerRng}@ = // \expos range_reference_t; - // \ref{range.join.iterator}, class template \tcode{join_view::iterator} + // \ref{range.join.iterator}, class template \tcode{join_view::\exposid{iterator}} template struct @\exposid{iterator}@; // \expos - // \ref{range.join.sentinel}, class template \tcode{join_view::sentinel} + // \ref{range.join.sentinel}, class template \tcode{join_view::\exposid{sentinel}} template struct @\exposid{sentinel}@; // \expos @@ -4815,7 +4815,7 @@ Initializes \exposid{base_} with \tcode{views::all(std::forward(r))}. \end{itemdescr} -\rSec3[range.join.iterator]{Class template \tcode{join_view::iterator}} +\rSec3[range.join.iterator]{Class template \tcode{join_view::\exposid{iterator}}} \indexlibraryglobal{join_view::iterator}% \begin{codeblock} @@ -4929,7 +4929,7 @@ \end{codeblock} \pnum -\tcode{join_view} iterators use the \tcode{satisfy} function to skip over +\tcode{join_view} iterators use the \exposid{satisfy} function to skip over empty inner ranges. \begin{itemdecl} @@ -5009,8 +5009,8 @@ \pnum Let \tcode{\placeholder{inner-range}} be: \begin{itemize} -\item If \exposid{ref-is-glvalue} is \tcode{true}, \tcode{*outer_}. -\item Otherwise, \tcode{\exposid{parent_}->inner_}. +\item If \exposid{ref-is-glvalue} is \tcode{true}, \tcode{*\exposid{outer_}}. +\item Otherwise, \tcode{\exposid{parent_}->\exposid{inner_}}. \end{itemize} \pnum @@ -5120,7 +5120,7 @@ Equivalent to: \tcode{return ranges::iter_swap(x.\exposid{inner_}, y.\exposid{inner_});} \end{itemdescr} -\rSec3[range.join.sentinel]{Class template \tcode{join_view::sentinel}} +\rSec3[range.join.sentinel]{Class template \tcode{join_view::\exposid{sentinel}}} \indexlibraryglobal{join_view::sentinel}% \begin{codeblock} @@ -5168,7 +5168,8 @@ Initializes \exposid{end_} with \tcode{std::move(s.\exposid{end_})}. \end{itemdescr} -\indexlibrarymember{operator==}{join_view::sentinel}% +\indexlibrarymember{operator==}{join_view::sentinel}%3431 + \begin{itemdecl} friend constexpr bool operator==(const @\exposid{iterator}@& x, const @\exposid{sentinel}@& y); \end{itemdecl} @@ -5236,9 +5237,9 @@ V @\exposid{base_}@ = V(); // \expos Pattern @\exposid{pattern_}@ = Pattern(); // \expos iterator_t @\exposid{current_}@ = iterator_t(); // \expos, present only if \tcode{!forward_range} - // \ref{range.split.outer}, class template \tcode{split_view::outer_iterator} + // \ref{range.split.outer}, class template \tcode{split_view::\exposid{outer-iterator}} template struct @\exposid{outer-iterator}@; // \expos - // \ref{range.split.inner}, class template \tcode{split_view::inner_iterator} + // \ref{range.split.inner}, class template \tcode{split_view::\exposid{inner-iterator}} template struct @\exposid{inner-iterator}@; // \expos public: split_view() = default; @@ -5333,9 +5334,9 @@ \exposid{pattern_} with \tcode{single_view\{\brk{}std::move(e)\}}. \end{itemdescr} -\rSec3[range.split.outer]{Class template \tcode{split_view::outer_iterator}} +\rSec3[range.split.outer]{Class template \tcode{split_view::\exposid{outer-iterator}}} -\indexlibraryglobal{split_view::outer_iterator}% +\indexlibraryglobal{split_view::outer-iterator}% \begin{codeblock} namespace std::ranges { template @@ -5354,7 +5355,7 @@ using iterator_concept = conditional_t, forward_iterator_tag, input_iterator_tag>; using iterator_category = input_iterator_tag; - // \ref{range.split.outer.value}, class \tcode{split_view::outer_iterator::value_type} + // \ref{range.split.outer.value}, class \tcode{split_view::\exposid{outer-iterator}::value_type} struct value_type; using difference_type = range_difference_t<@\exposid{Base}@>; @@ -5388,11 +5389,11 @@ \pnum Many of the following specifications refer to the notional member -\exposid{current_} of \tcode{outer_iterator}. -\exposid{current_} is equivalent to \exposid{current_} if \tcode{V} -models \libconcept{forward_range}, and \tcode{\exposid{parent_}->current_} otherwise. +\placeholder{current} of \exposid{outer-iterator}. +\placeholder{current} is equivalent to \exposid{current_} if \tcode{V} +models \libconcept{forward_range}, and \tcode{\exposid{parent_}->\exposid{current_}} otherwise. -\indexlibraryctor{split_view::outer_iterator}% +\indexlibraryctor{split_view::outer-iterator}% \begin{itemdecl} constexpr explicit @\exposid{outer-iterator}@(@\exposid{Parent}@& parent) requires (!forward_range<@\exposid{Base}@>); @@ -5404,7 +5405,7 @@ Initializes \exposid{parent_} with \tcode{addressof(parent)}. \end{itemdescr} -\indexlibraryctor{split_view::outer_iterator}% +\indexlibraryctor{split_view::outer-iterator}% \begin{itemdecl} constexpr @\exposid{outer-iterator}@(@\exposid{Parent}@& parent, iterator_t<@\exposid{Base}@> current) requires forward_range<@\exposid{Base}@>; @@ -5417,7 +5418,7 @@ and \exposid{current_} with \tcode{std::move(current)}. \end{itemdescr} -\indexlibraryctor{split_view::outer_iterator}% +\indexlibraryctor{split_view::outer-iterator}% \begin{itemdecl} constexpr @\exposid{outer-iterator}@(@\exposid{outer-iterator}@ i) requires Const && convertible_to, iterator_t>; @@ -5430,7 +5431,7 @@ \exposid{current_} with \tcode{std::move(i.\exposid{current_})}. \end{itemdescr} -\indexlibrarymember{operator*}{split_view::outer_iterator}% +\indexlibrarymember{operator*}{split_view::outer-iterator}% \begin{itemdecl} constexpr value_type operator*() const; \end{itemdecl} @@ -5441,7 +5442,7 @@ Equivalent to: \tcode{return value_type\{*this\};} \end{itemdescr} -\indexlibrarymember{operator++}{split_view::outer_iterator}% +\indexlibrarymember{operator++}{split_view::outer-iterator}% \begin{itemdecl} constexpr @\exposid{outer-iterator}@& operator++(); \end{itemdecl} @@ -5468,7 +5469,7 @@ \end{codeblock} \end{itemdescr} -\indexlibrarymember{operator==}{split_view::outer_iterator}% +\indexlibrarymember{operator==}{split_view::outer-iterator}% \begin{itemdecl} friend constexpr bool operator==(const @\exposid{outer-iterator}@& x, const @\exposid{outer-iterator}@& y) requires forward_range<@\exposid{Base}@>; @@ -5480,7 +5481,7 @@ Equivalent to: \tcode{return x.\exposid{current_} == y.\exposid{current_};} \end{itemdescr} -\indexlibrarymember{operator==}{split_view::outer_iterator}% +\indexlibrarymember{operator==}{split_view::outer-iterator}% \begin{itemdecl} friend constexpr bool operator==(const @\exposid{outer-iterator}@& x, default_sentinel_t); \end{itemdecl} @@ -5491,9 +5492,9 @@ Equivalent to: \tcode{return x.\exposid{current_} == ranges::end(x.\exposid{parent_}->\exposid{base_});} \end{itemdescr} -\rSec3[range.split.outer.value]{Class \tcode{split_view::outer_iterator::value_type}} +\rSec3[range.split.outer.value]{Class \tcode{split_view::\exposid{outer-iterator}::value_type}} -\indexlibraryglobal{split_view::outer_iterator::value_type}% +\indexlibraryglobal{split_view::outer-iterator::value_type}% \begin{codeblock} namespace std::ranges { template @@ -5513,7 +5514,7 @@ } \end{codeblock} -\indexlibraryctor{split_view::outer_iterator::value_type}% +\indexlibraryctor{split_view::outer-iterator::value_type}% \begin{itemdecl} constexpr explicit value_type(@\exposid{outer-iterator}@ i); \end{itemdecl} @@ -5524,7 +5525,7 @@ Initializes \exposid{i_} with \tcode{std::move(i)}. \end{itemdescr} -\indexlibrarymember{begin}{split_view::outer_iterator::value_type}% +\indexlibrarymember{begin}{split_view::outer-iterator::value_type}% \begin{itemdecl} constexpr @\exposid{inner-iterator}@ begin() const requires copyable<@\exposid{outer-iterator}@>; \end{itemdecl} @@ -5532,10 +5533,10 @@ \begin{itemdescr} \pnum \effects -Equivalent to: \tcode{return inner_iterator\{i_\};} +Equivalent to: \tcode{return \exposid{inner-iterator}\{\exposid{i_}\};} \end{itemdescr} -\indexlibrarymember{begin}{split_view::outer_iterator::value_type}% +\indexlibrarymember{begin}{split_view::outer-iterator::value_type}% \begin{itemdecl} constexpr @\exposid{inner-iterator}@ begin() requires (!copyable<@\exposid{outer-iterator}@>); \end{itemdecl} @@ -5543,9 +5544,9 @@ \begin{itemdescr} \pnum \effects -Equivalent to: \tcode{return inner_iterator\{std::move(i_)\};} +Equivalent to: \tcode{return \exposid{inner-iterator}\{std::move(\exposid{i_})\};} \end{itemdescr} -\indexlibrarymember{end}{split_view::outer_iterator::value_type}% +\indexlibrarymember{end}{split_view::outer-iterator::value_type}% \begin{itemdecl} constexpr default_sentinel_t end() const; \end{itemdecl} @@ -5556,9 +5557,9 @@ Equivalent to: \tcode{return default_sentinel;} \end{itemdescr} -\rSec3[range.split.inner]{Class template \tcode{split_view::inner_iterator}} +\rSec3[range.split.inner]{Class template \tcode{split_view::\exposid{inner-iterator}}} -\indexlibraryglobal{split_view::inner_iterator}% +\indexlibraryglobal{split_view::inner-iterator}% \begin{codeblock} namespace std::ranges { template @@ -5616,7 +5617,7 @@ \item otherwise, \tcode{iterator_traits>::iterator_category}. \end{itemize} -\indexlibraryctor{split_view::inner_iterator}% +\indexlibraryctor{split_view::inner-iterator}% \begin{itemdecl} constexpr explicit @\exposid{inner-iterator}@(@\exposid{outer-iterator}@ i); \end{itemdecl} @@ -5627,7 +5628,7 @@ Initializes \exposid{i_} with \tcode{std::move(i)}. \end{itemdescr} -\indexlibrarymember{operator++}{split_view::inner_iterator}% +\indexlibrarymember{operator++}{split_view::inner-iterator}% \begin{itemdecl} constexpr @\exposid{inner-iterator}@& operator++() const; \end{itemdecl} @@ -5643,12 +5644,12 @@ return *this; } } -++@\exposid{i_}@.@\exposid{current_}@; +++@\exposid{i_}@.@\placeholder{current}@; return *this; \end{codeblock} \end{itemdescr} -\indexlibrarymember{operator==}{split_view::inner_iterator}% +\indexlibrarymember{operator==}{split_view::inner-iterator}% \begin{itemdecl} friend constexpr bool operator==(const @\exposid{inner-iterator}@& x, const @\exposid{inner-iterator}@& y) requires forward_range<@\exposid{Base}@>; @@ -5657,10 +5658,10 @@ \begin{itemdescr} \pnum \effects -Equivalent to: \tcode{return x.\exposid{i_}.\exposid{current_} == y.\exposid{i_}.\exposid{current_};} +Equivalent to: \tcode{return x.\exposid{i_}.\placeholder{current} == y.\exposid{i_}.\placeholder{current};} \end{itemdescr} -\indexlibrarymember{operator==}{split_view::inner_iterator}% +\indexlibrarymember{operator==}{split_view::inner-iterator}% \begin{itemdecl} friend constexpr bool operator==(const @\exposid{inner-iterator}@& x, default_sentinel_t); \end{itemdecl} @@ -5673,12 +5674,12 @@ auto [pcur, pend] = subrange{x.@\exposid{i_}@.@\exposid{parent_}@->@\exposid{pattern_}@}; auto end = ranges::end(x.@\exposid{i_}@.@\exposid{parent_}@->@\exposid{base_}@); if constexpr (@\exposconcept{tiny-range}@) { - const auto & cur = x.@\exposid{i_}@.@\exposid{current_}@; + const auto & cur = x.@\exposid{i_}@.@\placeholder{current}@; if (cur == end) return true; if (pcur == pend) return x.@\exposid{incremented_}@; return *cur == *pcur; } else { - auto cur = x.@\exposid{i_}@.@\exposid{current_}@; + auto cur = x.@\exposid{i_}@.@\placeholder{current}@; if (cur == end) return true; if (pcur == pend) return x.@\exposid{incremented_}@; do { @@ -5690,10 +5691,10 @@ \end{codeblock} \end{itemdescr} -\indexlibrarymember{iter_swap}{split_view::inner_iterator}% +\indexlibrarymember{iter_swap}{split_view::inner-iterator}% \begin{itemdecl} friend constexpr void iter_swap(const @\exposid{inner-iterator}@& x, const @\exposid{inner-iterator}@& y) - noexcept(noexcept(ranges::iter_swap(x.@\exposid{i_}@.@\exposid{current_}@, y.@\exposid{i_}@.@\exposid{current_}@))) + noexcept(noexcept(ranges::iter_swap(x.@\exposid{i_}@.@\placeholdernc{current}@, y.@\exposid{i_}@.@\placeholdernc{current}@))) requires indirectly_swappable>; \end{itemdecl} @@ -5701,7 +5702,7 @@ \pnum \effects Equivalent to -\tcode{ranges::iter_swap(x.\exposid{i_}.\exposid{current_}, y.\exposid{i_}.\exposid{current_})}. +\tcode{ranges::iter_swap(x.\exposid{i_}.\placeholdernc{current}, y.\exposid{i_}.\placeholdernc{current})}. \end{itemdescr} \rSec3[range.split.adaptor]{\tcode{views::split}} @@ -6108,7 +6109,7 @@ \begin{example} \begin{codeblock} auto is_even = [](const auto x) { return x % 2 == 0; }; -cout << ranges::@\exposid{count_}@if(values_view{historical_figures}, is_even); // prints \tcode{2} +cout << ranges::count_if(values_view{historical_figures}, is_even); // prints \tcode{2} \end{codeblock} \end{example} @@ -6178,7 +6179,7 @@ Initializes \exposid{base_} with \tcode{std::move(base)}. \end{itemdescr} -\rSec3[range.elements.iterator]{Class template \tcode{elements_view::iterator}} +\rSec3[range.elements.iterator]{Class template \tcode{elements_view::\exposid{iterator}}} \indexlibraryglobal{elements_view::iterator}% \begin{codeblock} @@ -6197,10 +6198,10 @@ @\exposid{iterator}@() = default; constexpr explicit @\exposid{iterator}@(iterator_t<@\exposid{base-t}@> current); - constexpr @\exposid{iterator}@(iterator i) + constexpr @\exposid{iterator}@(@\exposid{iterator}@ i) requires Const && convertible_to, iterator_t<@\exposid{base-t}@>>; - constexpr iterator_t<@\exposid{base-t}@> base() const & + constexpr iterator_t<@\exposid{base-t}@> base() const& requires copyable>; constexpr iterator_t<@\exposid{base-t}@> base() &&; @@ -6283,7 +6284,7 @@ \indexlibrarymember{base}{elements_view::iterator}% \begin{itemdecl} -constexpr iterator_t<@\exposid{base-t}@> base() const & +constexpr iterator_t<@\exposid{base-t}@> base() const& requires copyable>; \end{itemdecl} @@ -6301,7 +6302,7 @@ \begin{itemdescr} \pnum \effects -Equivalent to: \tcode{return std::move(current_);} +Equivalent to: \tcode{return std::move(\exposid{current_});} \end{itemdescr} \indexlibrarymember{operator++}{elements_view::iterator}% @@ -6327,7 +6328,7 @@ \begin{itemdescr} \pnum \effects -Equivalent to: \tcode{++current_}. +Equivalent to: \tcode{++\exposid{current_}}. \end{itemdescr} \indexlibrarymember{operator++}{elements_view::iterator}%