Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 15 additions & 13 deletions source/ranges.tex
Original file line number Diff line number Diff line change
Expand Up @@ -63,27 +63,27 @@
concept borrowed_range = @\seebelow@;

template<class T>
using iterator_t = decltype(ranges::begin(declval<T&>()));
using @\libglobal{iterator_t}@ = decltype(ranges::begin(declval<T&>()));
template<@\libconcept{range}@ R>
using sentinel_t = decltype(ranges::end(declval<R&>()));
using @\libglobal{sentinel_t}@ = decltype(ranges::end(declval<R&>()));
template<@\libconcept{range}@ R>
using const_iterator_t = decltype(ranges::cbegin(declval<R&>()));
using @\libglobal{const_iterator_t}@ = decltype(ranges::cbegin(declval<R&>()));
template<@\libconcept{range}@ R>
using const_sentinel_t = decltype(ranges::cend(declval<R&>()));
using @\libglobal{const_sentinel_t}@ = decltype(ranges::cend(declval<R&>()));
template<@\libconcept{range}@ R>
using range_difference_t = iter_difference_t<iterator_t<R>>;
using @\libglobal{range_difference_t}@ = iter_difference_t<iterator_t<R>>;
template<@\libconcept{sized_range}@ R>
using range_size_t = decltype(ranges::size(declval<R&>()));
using @\libglobal{range_size_t}@ = decltype(ranges::size(declval<R&>()));
template<@\libconcept{range}@ R>
using range_value_t = iter_value_t<iterator_t<R>>;
using @\libglobal{range_value_t}@ = iter_value_t<iterator_t<R>>;
template<@\libconcept{range}@ R>
using range_reference_t = iter_reference_t<iterator_t<R>>;
using @\libglobal{range_reference_t}@ = iter_reference_t<iterator_t<R>>;
template<@\libconcept{range}@ R>
using range_const_reference_t = iter_const_reference_t<iterator_t<R>>;
using @\libglobal{range_const_reference_t}@ = iter_const_reference_t<iterator_t<R>>;
template<@\libconcept{range}@ R>
using range_rvalue_reference_t = iter_rvalue_reference_t<iterator_t<R>>;
using @\libglobal{range_rvalue_reference_t}@ = iter_rvalue_reference_t<iterator_t<R>>;
template<@\libconcept{range}@ R>
using range_common_reference_t = iter_common_reference_t<iterator_t<R>>;
using @\libglobal{range_common_reference_t}@ = iter_common_reference_t<iterator_t<R>>;

// \ref{range.sized}, sized ranges
template<class>
Expand Down Expand Up @@ -235,9 +235,9 @@
requires @\seebelow@
class basic_istream_view; // hosted
template<class Val>
using istream_view = basic_istream_view<Val, char>; // hosted
using @\libglobal{istream_view}@ = basic_istream_view<Val, char>; // hosted
template<class Val>
using wistream_view = basic_istream_view<Val, wchar_t>; // hosted
using @\libglobal{wistream_view}@ = basic_istream_view<Val, wchar_t>; // hosted

namespace views {
template<class T> constexpr @\unspecnc@ istream = @\unspecnc@; // hosted
Expand Down Expand Up @@ -2298,6 +2298,8 @@
model \libconcept{borrowed_range}.
\end{example}

\indexlibraryglobal{borrowed_iterator_t}%
\indexlibraryglobal{borrowed_subrange_t}%
\pnum
For a type \tcode{R} that models \libconcept{range}:
\begin{itemize}
Expand Down