Skip to content

Commit 2828e7e

Browse files
jensmaurertkoeppe
authored andcommitted
LWG3551 borrowed_{iterator,subrange}_t are overspecified
1 parent 96d4993 commit 2828e7e

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

source/ranges.tex

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,10 @@
134134
struct dangling;
135135

136136
template<@\libconcept{range}@ R>
137-
using borrowed_iterator_t = conditional_t<@\libconcept{borrowed_range}@<R>, iterator_t<R>, dangling>;
137+
using borrowed_iterator_t = @\seebelow@;
138138

139139
template<@\libconcept{range}@ R>
140-
using borrowed_subrange_t =
141-
conditional_t<@\libconcept{borrowed_range}@<R>, subrange<iterator_t<R>>, dangling>;
140+
using borrowed_subrange_t = @\seebelow@;
142141

143142
// \ref{range.empty}, empty view
144143
template<class T>
@@ -1884,6 +1883,19 @@
18841883
model \libconcept{borrowed_range}.
18851884
\end{example}
18861885

1886+
\pnum
1887+
For a type \tcode{R} that models \libconcept{range}:
1888+
\begin{itemize}
1889+
\item
1890+
if \tcode{R} models \libconcept{borrowed_range}, then
1891+
\tcode{borrowed_iterator_t<R>} denotes \tcode{iterator_t<R>}, and
1892+
\tcode{borrowed_subrange_t<R>} denotes \tcode{subrange<iterator_t<R>>};
1893+
\item
1894+
otherwise,
1895+
both \tcode{borrowed_iterator_t<R>} and \tcode{borrowed_subrange_t<R>}
1896+
denote \tcode{dangling}.
1897+
\end{itemize}
1898+
18871899
\rSec1[range.factories]{Range factories}
18881900

18891901
\rSec2[range.factories.general]{General}

0 commit comments

Comments
 (0)