std::partial_order
来自cppreference.net
| 定义于头文件 <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ partial_order = /* unspecified */;
}
|
(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 的结果。
令 t 和 u 为表达式,且 T 与 U 分别表示 decltype((t)) 和 decltype((u)),则 std::partial_order(t, u) 是表达式等价的
- 如果
std::is_same_v<std::decay_t<T>, std::decay_t<U>>为true:std::partial_ordering(partial_order(t, u)),如果它是一个格式良好的表达式,且重载决议在不包含std::partial_order声明的语境中执行,- 否则,
std::partial_ordering(std::compare_three_way()(t, u)),如果格式良好, - 否则,
std::partial_ordering(std::weak_order(t, u)),如果格式良好。
- 在所有其他情况下,该表达式是格式错误的,当出现在模板实例化的立即语境中时,可能导致替换失败。
定制点对象
名称
std::partial_order
表示一个
定制点对象
,这是一个字面量
semiregular
类类型的常量
函数对象
。详情请参阅
定制点对象
。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(C++20)
|
支持全部6种运算符、不可替换且允许不可比较值的三路比较结果类型
(类) |
|
(C++20)
|
执行三路比较并生成
std::strong_ordering
类型的结果
(定制点对象) |
|
(C++20)
|
执行三路比较并生成
std::weak_ordering
类型的结果
(定制点对象) |
|
(C++20)
|
执行三路比较并生成
std::partial_ordering
类型的结果,即使
operator
<=>
不可用
(定制点对象) |