@@ -14283,21 +14283,19 @@
14283
14283
\pnum
14284
14284
For templates \tcode{less}, \tcode{greater}, \tcode{less_equal}, and
14285
14285
\tcode{greater_equal}, the specializations for any pointer type
14286
- yield a strict total order that is consistent among those specializations and
14287
- is also consistent with the partial order imposed by
14288
- the built-in operators \tcode{<}, \tcode{>}, \tcode{<=}, \tcode{>=}.
14286
+ yield a result consistent with the
14287
+ implementation-defined strict total order over pointers\iref{defns.order.ptr}.
14289
14288
\begin{note}
14290
- When \tcode{a < b} is well-defined
14289
+ If \tcode{a < b} is well-defined
14291
14290
for pointers \tcode{a} and \tcode{b} of type \tcode{P},
14292
- this implies \tcode{(a < b) == less<P>()(a, b)},
14291
+ then \tcode{(a < b) == less<P>()(a, b)},
14293
14292
\tcode{(a > b) == greater<P>()(a, b)}, and so forth.
14294
14293
\end{note}
14295
14294
For template specializations \tcode{less<void>}, \tcode{greater<void>},
14296
14295
\tcode{less_equal<void>}, and \tcode{greater_equal<void>},
14297
14296
if the call operator calls a built-in operator comparing pointers,
14298
- the call operator yields a strict total order
14299
- that is consistent among those specializations and
14300
- is also consistent with the partial order imposed by those built-in operators.
14297
+ the call operator yields a result consistent
14298
+ with the implementation-defined strict total order over pointers.
14301
14299
14302
14300
\rSec3[comparisons.equal.to]{Class template \tcode{equal_to}}
14303
14301
14561
14559
in the expression \tcode{declval<T>() $op$ declval<U>()} resolves to a built-in
14562
14560
operator comparing pointers.
14563
14561
14564
- \pnum
14565
- There is an implementation-defined strict total ordering over all pointer values
14566
- of a given type. This total ordering is consistent with the partial order imposed
14567
- by the builtin operators \tcode{<}, \tcode{>}, \tcode{<=}, \tcode{>=}, and
14568
- \tcode{<=>}.
14569
-
14570
14562
\indexlibraryglobal{equal_to}%
14571
14563
\begin{itemdecl}
14572
14564
struct ranges::equal_to {
@@ -14591,10 +14583,10 @@
14591
14583
\begin{itemize}
14592
14584
\item
14593
14585
If the expression \tcode{std::forward<T>(t) == std::forward<U>(u)} results in
14594
- a call to a built-in operator \tcode{==} comparing pointers of type \tcode{P} :
14586
+ a call to a built-in operator \tcode{==} comparing pointers:
14595
14587
returns \tcode{false} if either (the converted value of) \tcode{t} precedes
14596
14588
\tcode{u} or \tcode{u} precedes \tcode{t} in the implementation-defined strict
14597
- total order over pointers of type \tcode{P } and otherwise \tcode{true}.
14589
+ total order over pointers\iref{defns.order.ptr } and otherwise \tcode{true}.
14598
14590
14599
14591
\item
14600
14592
Otherwise, equivalent to:
14670
14662
\begin{itemize}
14671
14663
\item
14672
14664
If the expression \tcode{std::forward<T>(t) < std::forward<U>(u)} results in a
14673
- call to a built-in operator \tcode{<} comparing pointers of type \tcode{P} :
14665
+ call to a built-in operator \tcode{<} comparing pointers:
14674
14666
returns \tcode{true} if (the converted value of) \tcode{t} precedes \tcode{u} in
14675
- the implementation-defined strict total order over pointers of type \tcode{P }
14667
+ the implementation-defined strict total order over pointers\iref{defns.order.ptr }
14676
14668
and otherwise \tcode{false}.
14677
14669
14678
14670
\item
0 commit comments