命名空间
变体
操作

std::partial_order

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

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

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

    requires /* 见下文 */
constexpr std::partial_ordering

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

使用三向比较比较两个值,并生成类型为 std::partial_ordering 的结果。

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

自定义点对象

名称 std::partial_order 表示一个*自定义点对象*,它是一个常量 函数对象,属于 字面量 semiregular 类类型。为了说明目的,其类型中 cv 非限定版本表示为 __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 的函数调用运算符不参与重载决议。

[编辑] 示例

[编辑] 另请参阅

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