diff --git a/source/ranges.tex b/source/ranges.tex index 58f2ef0c01..81b3f382b0 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -562,16 +562,16 @@ namespace views { inline constexpr @\unspec@ cache_latest = @\unspec@; } - // \ref{range.to.input}, to input view + // \ref{range.as.input}, as input view template<@\libconcept{input_range}@ V> requires @\libconcept{view}@ - class to_input_view; + class as_input_view; template - constexpr bool enable_borrowed_range> = + constexpr bool enable_borrowed_range> = enable_borrowed_range; - namespace views { inline constexpr @\unspec@ to_input = @\unspec@; } + namespace views { inline constexpr @\unspec@ as_input = @\unspec@; } } namespace std { @@ -17752,12 +17752,12 @@ \tcode{x.\exposid{end_} - y.\exposid{current_}}. \end{itemdescr} -\rSec2[range.to.input]{To input view} +\rSec2[range.as.input]{As input view} -\rSec3[range.to.input.overview]{Overview} +\rSec3[range.as.input.overview]{Overview} \pnum -\tcode{to_input_view} presents a view of an underlying sequence +\tcode{as_input_view} presents a view of an underlying sequence as an input-only non-common range. \begin{note} This is useful to avoid overhead @@ -17766,10 +17766,10 @@ \end{note} \pnum -The name \tcode{views::to_input} denotes +The name \tcode{views::as_input} denotes a range adaptor object\iref{range.adaptor.object}. Let \tcode{E} be an expression and let \tcode{T} be \tcode{decltype((E))}. -The expression \tcode{views::to_input(E)} is expression-equivalent to: +The expression \tcode{views::as_input(E)} is expression-equivalent to: \begin{itemize} \item \tcode{views::all(E)} @@ -17777,25 +17777,25 @@ does not satisfy \libconcept{common_range}, and does not satisfy \libconcept{forward_range}. \item -Otherwise, \tcode{to_input_view(E)}. +Otherwise, \tcode{as_input_view(E)}. \end{itemize} -\rSec3[range.to.input.view]{Class template \tcode{to_input_view}} +\rSec3[range.as.input.view]{Class template \tcode{as_input_view}} -\indexlibraryglobal{to_input_view}% +\indexlibraryglobal{as_input_view}% \begin{codeblock} namespace std::ranges { template<@\libconcept{input_range}@ V> requires @\libconcept{view}@ - class to_input_view : public view_interface> { + class as_input_view : public view_interface> { V @\exposid{base_}@ = V(); // \expos - // \ref{range.to.input.iterator}, class template \tcode{to_input_view::\exposid{iterator}} + // \ref{range.as.input.iterator}, class template \tcode{as_input_view::\exposid{iterator}} template class @\exposid{iterator}@; // \expos public: - to_input_view() requires @\libconcept{default_initializable}@ = default; - constexpr explicit to_input_view(V base); + as_input_view() requires @\libconcept{default_initializable}@ = default; + constexpr explicit as_input_view(V base); constexpr V base() const & requires @\libconcept{copy_constructible}@ { return @\exposid{base_}@; } constexpr V base() && { return std::move(@\exposid{base_}@); } @@ -17814,13 +17814,13 @@ }; template - to_input_view(R&&) -> to_input_view>; + as_input_view(R&&) -> as_input_view>; } \end{codeblock} -\indexlibraryctor{to_input_view}% +\indexlibraryctor{as_input_view}% \begin{itemdecl} -constexpr explicit to_input_view(V base); +constexpr explicit as_input_view(V base); \end{itemdecl} \begin{itemdescr} @@ -17829,7 +17829,7 @@ Initializes \exposid{base_} with \tcode{std::move(base)}. \end{itemdescr} -\indexlibrarymember{begin}{to_input_view}% +\indexlibrarymember{begin}{as_input_view}% \begin{itemdecl} constexpr auto begin() requires (!@\exposconcept{simple-view}@); \end{itemdecl} @@ -17840,7 +17840,7 @@ Equivalent to: \tcode{return \exposid{iterator}(ranges::begin(\exposid{base_}));} \end{itemdescr} -\indexlibrarymember{begin}{to_input_view}% +\indexlibrarymember{begin}{as_input_view}% \begin{itemdecl} constexpr auto begin() const requires @\libconcept{range}@; \end{itemdecl} @@ -17851,7 +17851,7 @@ Equivalent to: \tcode{return \exposid{iterator}(ranges::begin(\exposid{base_}));} \end{itemdescr} -\indexlibrarymember{end}{to_input_view}% +\indexlibrarymember{end}{as_input_view}% \begin{itemdecl} constexpr auto end() requires (!@\exposconcept{simple-view}@); constexpr auto end() const requires @\libconcept{range}@; @@ -17863,7 +17863,7 @@ Equivalent to: \tcode{return ranges::end(\exposid{base_});} \end{itemdescr} -\indexlibrarymember{size}{to_input_view}% +\indexlibrarymember{size}{as_input_view}% \begin{itemdecl} constexpr auto size() requires @\libconcept{sized_range}@; constexpr auto size() const requires @\libconcept{sized_range}@; @@ -17875,7 +17875,7 @@ Equivalent to: \tcode{return ranges::size(\exposid{base_});} \end{itemdescr} -\indexlibrarymember{reserve_hint}{to_input_view}% +\indexlibrarymember{reserve_hint}{as_input_view}% \begin{itemdecl} constexpr auto reserve_hint() requires @\libconcept{approximately_sized_range}@; constexpr auto reserve_hint() const requires @\libconcept{approximately_sized_range}@; @@ -17887,15 +17887,15 @@ Equivalent to: \tcode{return ranges::reserve_hint(\exposid{base_});} \end{itemdescr} -\rSec3[range.to.input.iterator]{Class template \tcode{to_input_view::\exposid{iterator}}} +\rSec3[range.as.input.iterator]{Class template \tcode{as_input_view::\exposid{iterator}}} -\indexlibraryglobal{to_input_view::\exposid{iterator}}% +\indexlibraryglobal{as_input_view::\exposid{iterator}}% \begin{codeblock} namespace std::ranges { template<@\libconcept{input_range}@ V> requires @\libconcept{view}@ template - class to_input_view::@\exposid{iterator}@ { + class as_input_view::@\exposid{iterator}@ { using @\exposid{Base}@ = @\exposid{maybe-const}@; // \expos iterator_t<@\exposid{Base}@> @\exposid{current_}@ = iterator_t<@\exposid{Base}@>(); // \expos @@ -17940,7 +17940,7 @@ } \end{codeblock} -\indexlibraryctor{to_input_view::\exposid{iterator}}% +\indexlibraryctor{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr explicit @\exposid{iterator}@(iterator_t<@\exposid{Base}@> current); \end{itemdecl} @@ -17951,7 +17951,7 @@ Initializes \exposid{current_} with \tcode{std::move(current)}. \end{itemdescr} -\indexlibraryctor{to_input_view::\exposid{iterator}}% +\indexlibraryctor{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr @\exposid{iterator}@(@\exposid{iterator}@ i) requires Const && @\libconcept{convertible_to}@, iterator_t<@\exposid{Base}@>>; @@ -17963,7 +17963,7 @@ Initializes \exposid{current_} with \tcode{std::move(i.\exposid{current_})}. \end{itemdescr} -\indexlibrarymember{base}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{base}{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr iterator_t<@\exposid{Base}@> base() &&; \end{itemdecl} @@ -17974,7 +17974,7 @@ \tcode{std::move(\exposid{current_})}. \end{itemdescr} -\indexlibrarymember{base}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{base}{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr const iterator_t<@\exposid{Base}@>& base() const & noexcept; \end{itemdecl} @@ -17985,7 +17985,7 @@ \exposid{current_}. \end{itemdescr} -\indexlibrarymember{operator++}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{operator++}{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr @\exposid{iterator}@& operator++(); \end{itemdecl} @@ -18000,7 +18000,7 @@ \end{codeblock} \end{itemdescr} -\indexlibrarymember{operator++}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{operator++}{as_input_view::\exposid{iterator}}% \begin{itemdecl} constexpr void operator++(int); \end{itemdecl} @@ -18011,7 +18011,7 @@ Equivalent to: \tcode{++*this;} \end{itemdescr} -\indexlibrarymember{operator==}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{operator==}{as_input_view::\exposid{iterator}}% \begin{itemdecl} friend constexpr bool operator==(const @\exposid{iterator}@& x, const sentinel_t<@\exposid{Base}@>& y); \end{itemdecl} @@ -18022,7 +18022,7 @@ \tcode{x.\exposid{current_} == y}. \end{itemdescr} -\indexlibrarymember{operator-}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{operator-}{as_input_view::\exposid{iterator}}% \begin{itemdecl} friend constexpr difference_type operator-(const sentinel_t<@\exposid{Base}@>& y, const @\exposid{iterator}@& x) requires @\libconcept{sized_sentinel_for}@, iterator_t<@\exposid{Base}@>>; @@ -18034,7 +18034,7 @@ \tcode{y - x.\exposid{current_}}. \end{itemdescr} -\indexlibrarymember{operator-}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{operator-}{as_input_view::\exposid{iterator}}% \begin{itemdecl} friend constexpr difference_type operator-(const @\exposid{iterator}@& x, const sentinel_t<@\exposid{Base}@>& y) requires @\libconcept{sized_sentinel_for}@, iterator_t<@\exposid{Base}@>>; @@ -18046,7 +18046,7 @@ \tcode{x.\exposid{current_} - y}. \end{itemdescr} -\indexlibrarymember{iter_move}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{iter_move}{as_input_view::\exposid{iterator}}% \begin{itemdecl} friend constexpr range_rvalue_reference_t<@\exposid{Base}@> iter_move(const @\exposid{iterator}@& i) noexcept(noexcept(ranges::iter_move(i.@\exposid{current_}@))); @@ -18058,7 +18058,7 @@ Equivalent to: \tcode{return ranges::iter_move(i.\exposid{current_});} \end{itemdescr} -\indexlibrarymember{iter_swap}{to_input_view::\exposid{iterator}}% +\indexlibrarymember{iter_swap}{as_input_view::\exposid{iterator}}% \begin{itemdecl} friend constexpr void iter_swap(const @\exposid{iterator}@& x, const @\exposid{iterator}@& y) noexcept(noexcept(ranges::iter_swap(x.@\exposid{current_}@, y.@\exposid{current_}@))) diff --git a/source/support.tex b/source/support.tex index 203a1bf45f..0c4865a8d7 100644 --- a/source/support.tex +++ b/source/support.tex @@ -789,6 +789,7 @@ #define @\defnlibxname{cpp_lib_ranges}@ 202406L // also in \libheader{algorithm}, \libheader{functional}, \libheader{iterator}, \libheader{memory}, \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_as_const}@ 202311L // freestanding, also in \libheader{ranges} +#define @\defnlibxname{cpp_lib_ranges_as_input}@ 202502L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_as_rvalue}@ 202207L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_cache_latest}@ 202411L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_cartesian_product}@ 202207L // freestanding, also in \libheader{ranges} @@ -809,7 +810,6 @@ #define @\defnlibxname{cpp_lib_ranges_starts_ends_with}@ 202106L // freestanding, also in \libheader{algorithm} #define @\defnlibxname{cpp_lib_ranges_stride}@ 202207L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_to_container}@ 202202L // freestanding, also in \libheader{ranges} -#define @\defnlibxname{cpp_lib_ranges_to_input}@ 202502L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_zip}@ 202110L // freestanding, also in \libheader{ranges}, \libheader{tuple}, \libheader{utility} #define @\defnlibxname{cpp_lib_ratio}@ 202306L // freestanding, also in \libheader{ratio}