std::compare_3way

来自cppreference.com
< cpp‎ | algorithm
 
 
算法库
执行策略 (C++17)
不修改序列的操作
(C++11)
(C++11)
(C++11)
(C++17)
修改序列的操作
未初始化存储上的操作
划分操作
排序操作
(C++11)
二分搜索操作
集合操作(在已排序范围上)
堆操作
(C++11)
最小/最大操作
(C++11)
(C++17)
compare_3way
(C++20)
排列
数值运算
C 库
 
定义于头文件 <algorithm>
template< class T, class U >
constexpr auto compare_3way( const T& a, const U& b );
(C++20 起)

用三路比较比较二个值,并产生最强的可应用比较类别类型。

详细而言:

  • 若表达式 a <=> b 为良式,则返回其结果
  • 否则,若表达式 a == ba < b 均为良式且可转换为 bool ,则
  • a == b 等于 true ,则返回 std::strong_ordering::equal
  • 否则,若 a < b 等于 true ,则返回 std::strong_ordering::less
  • 否则,返回 std::strong_ordering::greater
  • 否则,若表达式 a == b 为良式且可转换为 bool (但 a < b 非如此),则
  • a == b 等于 true ,则返回 std::strong_equality::equal
  • 否则,返回 std::strong_equality::nonequal
  • 否则(若 a <=> ba == b 均非良式),则定义函数为被删除。

目录

[编辑] 参数

a, b - 要比较的值

[编辑] 返回值

上述值。

[编辑] 示例

[编辑] 参阅

用三路比较比价二个范围
(函数模板) [编辑]
三路比较的结果类型,仅支持相等/不相等,且可替换
(类) [编辑]
三路比较的结果类型,仅支持相等/不相等,且不可替换
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符且可替换
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符且不可替换
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符,不可替换,并允许不可比较值
(类) [编辑]