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