命名空间
变体
操作

std::partial_order

来自 cppreference.cn
< cpp‎ | utility
 
 
 
定义于头文件 <compare>
inline namespace /* unspecified */ {

    inline constexpr /* unspecified */ partial_order = /* unspecified */;

}
(since C++20)
调用签名
template< class T, class U >

    requires /* see below */
constexpr std::partial_ordering

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

使用三路比较比较两个值,并生成 std::partial_ordering 类型的result。

tu 为表达式,TU 分别表示 decltype((t))decltype((u)),则 std::partial_order(t, u) 表达式等价于

定制点对象

名称 std::partial_order 表示一个定制点对象,它是一个 const 函数对象,该对象属于 字面量 semiregular 类类型。 为了说明目的,其类型的 cv-unqualified 版本表示为 __partial_order_fn

__partial_order_fn 的所有实例均相等。 在相同参数上调用 __partial_order_fn 类型的不同实例的效果是等效的,无论表示实例的表达式是左值还是右值,以及是否具有 const 限定符(但是,不要求可调用 volatile 限定的实例)。 因此,std::partial_order 可以自由复制,并且其副本可以互换使用。

给定一组类型 Args...,如果 std::declval<Args>()... 满足上述 std::partial_order 参数的要求,则 __partial_order_fn 建模为

否则,__partial_order_fn 的任何函数调用运算符均不参与重载解析。

[edit] 示例

[edit] 参见

支持所有 6 个运算符、不可替换且允许不可比较值的三路比较的结果类型
(类) [编辑]
执行三路比较并生成 std::strong_ordering 类型的result
(定制点对象)[编辑]
执行三路比较并生成 std::weak_ordering 类型的result
(定制点对象)[编辑]
执行三路比较并生成 std::partial_ordering 类型的result,即使 operator<=> 不可用
(定制点对象)[编辑]