Skip to content

[ranges.syn][range.dangling] Index miscellaneous alias templates in ranges #8090

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
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