Skip to content

Lost changes to P1754R1 (LWG Motion 11) #3153

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

Merged
merged 2 commits into from
Feb 25, 2021
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion source/iterators.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2867,7 +2867,7 @@
\begin{itemdescr}
\pnum
\expects
Either \tcode{assignable_from<I\&, S> || sized_sentinel_for<S, I>} is modeled, or
Either \tcode{\libconcept{assignable_from}<I\&, S> || \libconcept{sized_sentinel_for}<S, I>} is modeled, or
\range{i}{bound} denotes a range.

\pnum
Expand Down
34 changes: 17 additions & 17 deletions source/ranges.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1150,7 +1150,7 @@
The \libconcept{view} concept specifies the requirements of a \libconcept{range} type
that has constant time move construction, move assignment, and destruction;
that is, the cost of these operations is
independent of the number of elements in the \tcode{view}.
independent of the number of elements in the \libconcept{view}.

\begin{itemdecl}
template<class T>
Expand Down Expand Up @@ -1182,7 +1182,7 @@

\pnum
\begin{example}
Examples of \tcode{view}s are:
Examples of \libconcept{view}s are:
\begin{itemize}
\item A \libconcept{range} type that wraps a pair of iterators.

Expand Down Expand Up @@ -1331,7 +1331,7 @@

\pnum
The class template \tcode{view_interface} is a helper for defining
\tcode{view}-like types that offer a container-like interface. It is
\libconcept{view}-like types that offer a container-like interface. It is
parameterized with the type that is derived from it.

\indexlibraryglobal{view_interface}%
Expand Down Expand Up @@ -3081,7 +3081,7 @@
\rSec3[range.ref.view]{Class template \tcode{ref_view}}

\pnum
\tcode{ref_view} is a \tcode{view} of the elements of some other \tcode{range}.
\tcode{ref_view} is a \libconcept{view} of the elements of some other \libconcept{range}.
\indexlibraryglobal{ref_view}%
\begin{codeblock}
namespace std::ranges {
Expand Down Expand Up @@ -4495,8 +4495,8 @@
\rSec3[range.take.while.overview]{Overview}

\pnum
Given a unary predicate \tcode{pred} and a \tcode{view} \tcode{r},
\tcode{take_while_view} produces a \tcode{view}
Given a unary predicate \tcode{pred} and a \libconcept{view} \tcode{r},
\tcode{take_while_view} produces a \libconcept{view}
of the range \range{begin(r)}{ranges::find_if_not(r, pred)}.

\indexlibraryglobal{take_while}%
Expand Down Expand Up @@ -4672,9 +4672,9 @@
\rSec3[range.drop.overview]{Overview}

\pnum
\tcode{drop_view} produces a \tcode{view}
excluding the first $N$ elements from another \tcode{view}, or
an empty range if the adapted \tcode{view} contains fewer than $N$ elements.
\tcode{drop_view} produces a \libconcept{view}
excluding the first $N$ elements from another \libconcept{view}, or
an empty range if the adapted \libconcept{view} contains fewer than $N$ elements.

\pnum
The name \tcode{views::drop} denotes
Expand Down Expand Up @@ -4811,7 +4811,7 @@
\pnum
\remarks
In order to provide the amortized constant-time complexity required
by the \tcode{range} concept
by the \libconcept{range} concept
when \tcode{drop_view} models \libconcept{forward_range},
the first overload caches the result within the \tcode{drop_view}
for use on subsequent calls.
Expand All @@ -4827,8 +4827,8 @@
\rSec3[range.drop.while.overview]{Overview}

\pnum
Given a unary predicate \tcode{pred} and a \tcode{view} \tcode{r},
\tcode{drop_while_view} produces a \tcode{view}
Given a unary predicate \tcode{pred} and a \libconcept{view} \tcode{r},
\tcode{drop_while_view} produces a \libconcept{view}
of the range \range{ranges::find_if_not(r, pred)}{ranges::end(r)}.

\pnum
Expand Down Expand Up @@ -4921,8 +4921,8 @@
\pnum
\remarks
In order to provide the amortized constant-time complexity
required by the \tcode{range} concept
when \tcode{drop_while_view} models \tcode{forward_range},
required by the \libconcept{range} concept
when \tcode{drop_while_view} models \libconcept{forward_range},
the first call caches the result within the \tcode{drop_while_view}
for use on subsequent calls.
\begin{note}
Expand Down Expand Up @@ -6234,9 +6234,9 @@

\pnum
\tcode{elements_view} takes
a \tcode{view} of tuple-like values and a \tcode{size_t}, and
produces a \tcode{view} with a value-type of the $N^\text{th}$ element
of the adapted \tcode{view}'s value-type.
a \libconcept{view} of tuple-like values and a \tcode{size_t}, and
produces a \libconcept{view} with a value-type of the $N^\text{th}$ element
of the adapted \libconcept{view}'s value-type.

\pnum
The name \tcode{views::elements<N>} denotes
Expand Down
2 changes: 1 addition & 1 deletion source/support.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4675,7 +4675,7 @@
\end{note}
\end{itemdescr}

\rSec2[cmp.concept]{Concept \tcode{three_way_comparable}}
\rSec2[cmp.concept]{Concept \libconcept{three_way_comparable}}

\begin{codeblock}
template<class T, class Cat>
Expand Down
18 changes: 9 additions & 9 deletions source/utilities.tex
Original file line number Diff line number Diff line change
Expand Up @@ -14120,17 +14120,17 @@
\begin{codeblock}
struct compare_three_way {
template<class T, class U>
requires three_way_comparable_with<T, U> || @\placeholdernc{BUILTIN-PTR-THREE-WAY}@(T, U)
constexpr auto operator()(T&& t, U&& u) const;
requires @\libconcept{three_way_comparable_with}@<T, U> || @\placeholdernc{BUILTIN-PTR-THREE-WAY}@(T, U)
constexpr auto operator()(T&& t, U&& u) const;

using is_transparent = @\unspec@;
};
\end{codeblock}

\begin{itemdecl}
template<class T, class U>
requires three_way_comparable_with<T, U> || @\placeholdernc{BUILTIN-PTR-THREE-WAY}@(T, U)
constexpr auto operator()(T&& t, U&& u) const;
requires @\libconcept{three_way_comparable_with}@<T, U> || @\placeholdernc{BUILTIN-PTR-THREE-WAY}@(T, U)
constexpr auto operator()(T&& t, U&& u) const;
\end{itemdecl}

\begin{itemdescr}
Expand Down Expand Up @@ -14174,7 +14174,7 @@
struct ranges::equal_to {
template<class T, class U>
requires equality_comparable_with<T, U> || @\placeholdernc{BUILTIN-PTR-CMP}@(T, ==, U)
constexpr bool operator()(T&& t, U&& u) const;
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
};
Expand Down Expand Up @@ -14209,7 +14209,7 @@
struct ranges::not_equal_to {
template<class T, class U>
requires equality_comparable_with<T, U> || @\placeholdernc{BUILTIN-PTR-CMP}@(T, ==, U)
constexpr bool operator()(T&& t, U&& u) const;
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
};
Expand Down Expand Up @@ -14247,7 +14247,7 @@
struct ranges::less {
template<class T, class U>
requires @\libconcept{totally_ordered_with}@<T, U> || @\placeholdernc{BUILTIN-PTR-CMP}@(T, <, U)
constexpr bool operator()(T&& t, U&& u) const;
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
};
Expand Down Expand Up @@ -14288,7 +14288,7 @@
struct ranges::greater_equal {
template<class T, class U>
requires @\libconcept{totally_ordered_with}@<T, U> || @\placeholdernc{BUILTIN-PTR-CMP}@(T, <, U)
constexpr bool operator()(T&& t, U&& u) const;
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
};
Expand All @@ -14307,7 +14307,7 @@
struct ranges::less_equal {
template<class T, class U>
requires @\libconcept{totally_ordered_with}@<T, U> || @\placeholdernc{BUILTIN-PTR-CMP}@(U, <, T)
constexpr bool operator()(T&& t, U&& u) const;
constexpr bool operator()(T&& t, U&& u) const;

using is_transparent = @\unspecnc@;
};
Expand Down