std::strong_order
来自cppreference.com
| 定义于头文件 <compare>
|
||
| template< class T > constexpr std::strong_ordering strong_order(const T& a, const T& b); |
(C++20 起) | |
用三路比较比较二个值,并产生 std::strong_ordering 类型结果。
具体而言,
- 首先,若 std::numeric_limits<T>::is_iec559 为 true ,则进行 ISO/IEC/IEEE 60559 的浮点值全序 (totalOrder) 比较,并将结果作为 std::strong_ordering 类型值返回(注意:此比较能辨别正和负零,及有不同表示的 NaN )
- 否则若表达式 a <=> b 为良式而其结果可转换为 std::strong_ordering ,则返回该结果。
- 否则,若表达式 a <=> b 为良式,但其结果不可转换为 std::strong_ordering ,则定义函数为被删除。
- 否则,若表达式 a <=> b 为病式,但表达式 a == b 和 a < b 均为良式且可转换为 bool ,
- 若 a == b 为 true ,则返回 std::strong_ordering::equal
- 否则若 a < b 为 true ,则返回 std::strong_ordering::less
- 否则返回 std::strong_ordering::greater
- 否则,定义函数为被删除。
目录 |
[编辑] 参数
| a, b | - | 要比较的值 |
[编辑] 返回值
上述的 std::strong_ordering 类型值。
[编辑] 注意
[编辑] 示例
| 本节未完成 原因:暂无示例 |
[编辑] 参阅
| (C++20) |
三路比较的结果类型,支持所有 6 种运算符且可替换 (类) |
| (C++20) |
进行三路比较并产生 std::weak_ordering 类型结果 (函数模板) |

