命名空间
变体
操作

std::partial_order

来自 cppreference.com
< cpp‎ | utility
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三路比较
(C++20)
partial_order
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
定义在头文件 <compare>
inline namespace /* 未指定 */ {

    inline constexpr /* 未指定 */ partial_order = /* 未指定 */;

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

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

    partial_order( T&& t, U&& u ) noexcept(/* 参见下文 */);

使用三路比较对两个值进行比较,并生成类型为 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 的不同实例对相同参数的影响是等效的,无论表示该实例的表达式是左值还是右值,以及是否进行常量限定(但是,不需要调用易变限定的实例)。因此,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<=> 不可用
(自定义点对象)[编辑]