diff --git a/2997_common_reference_algo/common-reference-algo.md b/2997_common_reference_algo/common-reference-algo.md index 6f23c80f..904d95a4 100644 --- a/2997_common_reference_algo/common-reference-algo.md +++ b/2997_common_reference_algo/common-reference-algo.md @@ -56,7 +56,7 @@ auto f(R r) -> void { ``` ::: -It's a bit lengthy, but the important part is that `R` is a range of xvalue [^xvalue] `C` - `Iterator` is just a minimal iterator to achieve that goal (the fact that the iterator is just an input iterator doesn't matter, it just makes the example smaller). +It's a bit lengthy, but the important part is that `R` is a range of xvalue [^xvalue] `C` - `Iterator` is just a minimal iterator to achieve that goal (the fact that the iterator is just an input iterator doesn't matter, it just makes the example smaller). Note that ranges of xvalues already aren't all that obscure and will become even less so with time - `R` has the same properties as `std::generator`. [^xvalue]: The exact same issue comes up for a range of prvalues, arguably in a more surprising way. But a range of prvalue is effectively turned into a range of xvalue by way of projecting `identity`, so it's the same behavior. Note also that the use `identity` doesn't prevent prvalue elision - `std::invoke` already does that. @@ -301,7 +301,7 @@ namespace std { indirectly_readable && copy_constructible && predicate> && -- predicate>@[ &&]{.diffdel}@ +- predicate> @[&&]{.diffdel}@ - predicate>; + predicate>@[;]{.diffins}@ @@ -312,7 +312,7 @@ namespace std { predicate, $indirect-value-t$> && predicate, iter_reference_t> && predicate, $indirect-value-t$> && -- predicate, iter_reference_t>@[ &&]{.diffdel}@ +- predicate, iter_reference_t> @[&&]{.diffdel}@ - predicate, iter_common_reference_t>; + predicate, iter_reference_t>@[;]{.diffins}@ @@ -323,7 +323,7 @@ namespace std { equivalence_relation, $indirect-value-t$> && equivalence_relation, iter_reference_t> && equivalence_relation, $indirect-value-t$> && -- equivalence_relation, iter_reference_t>@[ &&]{.diffdel}@ +- equivalence_relation, iter_reference_t> @[&&]{.diffdel}@ - equivalence_relation, iter_common_reference_t>; + equivalence_relation, iter_reference_t>@[;]{.diffins}@ @@ -334,7 +334,7 @@ namespace std { strict_weak_order, $indirect-value-t$> && strict_weak_order, iter_reference_t> && strict_weak_order, $indirect-value-t$> && -- strict_weak_order, iter_reference_t>@[ &&]{.diffdel}@ +- strict_weak_order, iter_reference_t> @[&&]{.diffdel}@ - strict_weak_order, iter_common_reference_t>; + strict_weak_order, iter_reference_t>@[;]{.diffins}@ } diff --git a/2997_common_reference_algo/p2997r0.html b/2997_common_reference_algo/p2997r0.html index d81b557c..0cb527d8 100644 --- a/2997_common_reference_algo/p2997r0.html +++ b/2997_common_reference_algo/p2997r0.html @@ -4,7 +4,7 @@ - + Removing the common reference requirement from the indirectly invocable concepts