diff --git a/source/iterators.tex b/source/iterators.tex index dba63f6775..1a7b67109a 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -4288,6 +4288,13 @@ template<@\libconcept{sentinel_for}@ S> constexpr bool operator==(const S& s) const; + template<@\exposconcept{not-a-const-iterator}@ CI> + requires @\exposconcept{constant-iterator}@ && @\libconcept{convertible_to}@ + constexpr operator CI() const &; + template<@\exposconcept{not-a-const-iterator}@ CI> + requires @\exposconcept{constant-iterator}@ && @\libconcept{convertible_to}@ + constexpr operator CI() &&; + constexpr bool operator<(const basic_const_iterator& y) const requires @\libconcept{random_access_iterator}@; constexpr bool operator>(const basic_const_iterator& y) const @@ -4590,6 +4597,30 @@ Equivalent to: \tcode{return \exposid{current_} == s;} \end{itemdescr} +\begin{itemdecl} +template<@\exposconcept{not-a-const-iterator}@ CI> + requires @\exposconcept{constant-iterator}@ && @\libconcept{convertible_to}@ +constexpr operator CI() const &; +\end{itemdecl} + +\begin{itemdescr} +\pnum +\returns +\exposid{current_}. +\end{itemdescr} + +\begin{itemdecl} +template<@\exposconcept{not-a-const-iterator}@ CI> + requires @\exposconcept{constant-iterator}@ && @\libconcept{convertible_to}@ +constexpr operator CI() &&; +\end{itemdecl} + +\begin{itemdescr} +\pnum +\returns +\tcode{std::move(\exposid{current_})}. +\end{itemdescr} + \indexlibrarymember{operator<}{basic_const_iterator}% \indexlibrarymember{operator>}{basic_const_iterator}% \indexlibrarymember{operator<=}{basic_const_iterator}% diff --git a/source/support.tex b/source/support.tex index 68ccda0895..5d301b21a9 100644 --- a/source/support.tex +++ b/source/support.tex @@ -725,7 +725,7 @@ #define @\defnlibxname{cpp_lib_quoted_string_io}@ 201304L // also in \libheader{iomanip} #define @\defnlibxname{cpp_lib_ranges}@ 202302L // also in \libheader{algorithm}, \libheader{functional}, \libheader{iterator}, \libheader{memory}, \libheader{ranges} -#define @\defnlibxname{cpp_lib_ranges_as_const}@ 202207L // freestanding, also in \libheader{ranges} +#define @\defnlibxname{cpp_lib_ranges_as_const}@ 202311L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_as_rvalue}@ 202207L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_cartesian_product}@ 202207L // freestanding, also in \libheader{ranges} #define @\defnlibxname{cpp_lib_ranges_chunk}@ 202202L // freestanding, also in \libheader{ranges}