Skip to content

Commit bceff41

Browse files
committed
[range.range] [span.cons] Update remaining uses of removed
exposition-only concepts range-impl and forwarding-range with range and safe_range as appropriate.
1 parent 39665f5 commit bceff41

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

papers/nxxxx.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,20 @@ and after consulting the paper authors and the LWG chair,
6363
the corresponding changes were also applied to
6464
the additional range adaptors listed above.
6565

66+
### LWG motion 16
67+
68+
This paper removed the exposition-only concept *`range-impl`*,
69+
inlining it into its only remaining user, the `range` concept.
70+
However, two uses of *`range-impl`* were left behind.
71+
These have been updated and suitably adjusted
72+
to refer to `range` instead.
73+
74+
LWG motion 13 ([P1394R4](http://wg21.link/p1394r4))
75+
added a couple of new uses of
76+
the exposition-only concept *`forwarding-range`*,
77+
which was removed by this paper.
78+
These uses have been replaced with `safe_range`.
79+
6680
## Feature test macros
6781

6882
The feature test macro `__cpp_nontype_template_parameter_class` has been removed

source/containers.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10786,7 +10786,7 @@
1078610786
\item \tcode{extent == dynamic_extent} is \tcode{true}.
1078710787
\item \tcode{R} satisfies \tcode{ranges::\libconcept{contiguous_range}} and
1078810788
\tcode{ranges::\libconcept{sized_range}}.
10789-
\item Either \tcode{R} satisfies \exposconcept{forwarding-range} or
10789+
\item Either \tcode{R} satisfies \libconcept{safe_range} or
1079010790
\tcode{is_const_v<element_type>} is \tcode{true}.
1079110791
\item \tcode{remove_cvref_t<R>} is not a specialization of \tcode{span}.
1079210792
\item \tcode{remove_cvref_t<R>} is not a specialization of \tcode{array}.
@@ -10805,7 +10805,7 @@
1080510805
\item \tcode{R} models \tcode{ranges::\libconcept{contiguous_range}} and
1080610806
\tcode{ranges::\libconcept{sized_range}}.
1080710807
\item If \tcode{is_const_v<element_type>} is \tcode{false},
10808-
\tcode{R} models \exposconcept{forwarding-range}.
10808+
\tcode{R} models \libconcept{safe_range}.
1080910809
\end{itemize}
1081010810

1081110811
\pnum

source/ranges.tex

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -796,27 +796,27 @@
796796
\begin{itemdescr}
797797
\pnum
798798
The required expressions
799-
\tcode{ranges::begin(std::forward<T>(t))}
799+
\tcode{ranges::begin(t)}
800800
and
801-
\tcode{ranges::end(std::forward<\brk{}T>(t))}
802-
of the \exposconcept{range-impl} concept
801+
\tcode{ranges::end(t)}
802+
of the \libconcept{range} concept
803803
do not require implicit expression variations\iref{concepts.equality}.
804804

805805
\pnum
806-
Given an expression \tcode{E} such that \tcode{decltype((E))} is \tcode{T},
807-
\tcode{T} models \tcode{\placeholder{range-impl}} only if
806+
Given an expression \tcode{t} such that \tcode{decltype((t))} is \tcode{T\&},
807+
\tcode{T} models \libconcept{range} only if
808808
\begin{itemize}
809-
\item \range{ranges::begin(E)}{ranges::end(E)}
809+
\item \range{ranges::begin(t)}{ranges::end(t)}
810810
denotes a range\iref{iterator.requirements.general},
811811

812812
\item both
813-
\tcode{ranges::begin(E)}
813+
\tcode{ranges::begin(t)}
814814
and
815-
\tcode{ranges::end(E)}
815+
\tcode{ranges::end(t)}
816816
are amortized constant time and non-modifying, and
817817

818-
\item if the type of \tcode{ranges::begin(E)} models
819-
\libconcept{forward_iterator}, \tcode{ranges::begin(E)} is equality-preserving.
818+
\item if the type of \tcode{ranges::begin(t)} models
819+
\libconcept{forward_iterator}, \tcode{ranges::begin(t)} is equality-preserving.
820820
\end{itemize}
821821

822822
\pnum

0 commit comments

Comments
 (0)