home | help
std::compar...der_fallback(3)  C++ Standard Libary std::compar...der_fallback(3)

NAME
     std::compare_partial_order_fallback - std::compare_partial_order_fallback

Synopsis
	Defined in header <compare>
	inline namespace /* unspecified */ {

	    inline	    constexpr	       /*	  unspecified	      */
     (since C++20)
		compare_partial_order_fallback = /* unspecified */;

	}
	Call signature
	template< class T, class U >

	    requires /* see below */
	constexpr					   std::partial_ordering
     (since C++20)

	    compare_partial_order_fallback( T&& t, U&& u ) noexcept(/* see
	below */);

	Performs  three-way  comparison on subexpressions t and u and produces a
     result of
	type std::partial_ordering, even if the operator <=> is unavailable.

	If std::decay_t<T> and std::decay_t<U>> are the same type,
	std::compare_partial_order_fallback(t, u) is expression-equivalent to:

	  * std::partial_order(t, u), if it is a well-formed expression;
	  * otherwise, t == u ? std::partial_ordering::equivalent :
	    t < u  ? std::partial_ordering::less :
	    u_<_t_ _ _t_:_p_r_ial_ordering::greater :
	    a a a a a a a a a std::partial_ordering::unordered

	if the expressions t == u, t < u and u < t are all well-formed and  each
     of
	decltype(t  ==	u)  and  decltype(t < u) models boolean-testable, except
     that t and u
	are evaluated only once.

	In all other cases, std::compare_partial_order_fallback(t,  u)	is  ill-
     formed, which
	can result in substitution failure when it appears in the immediate con-
     text of a
	template instantiation.

Example
	 This section is incomplete
	 Reason: no example

	Defect reports

	The  following	behavior-changing  defect  reports were applied retroac-
     tively to
	previously published C++ standards.

	   DR	  Applied to	     Behavior as published		 Correct
     behavior
	LWG  2114  C++20      the fallback mechanism only required   constraints
     strengthened
	(P2167R3)	     return types to be convertible to bool
	LWG 3465  C++20      the fallback mechanism did not require required
			     u < t to be well-formed

See also
	partial_order performs 3-way comparison and produces a result of type
	(C++20)       std::partial_ordering
		      (customization point object)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::compar...der_fallback(3)

home | help