std::ranges:: less
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<functional>
|
||
|
struct
less
;
|
(C++20 起) | |
用于执行比较的函数对象。从参数推导函数调用运算符的参数类型(但不推导返回类型)。
目录 |
嵌套类型
| 嵌套类型 | 定义 |
is_transparent
|
未指定 |
成员函数
|
operator()
|
检查第一个参数是否
小于
第二个参数
(公开成员函数) |
std::ranges::less:: operator()
|
template
<
class
T,
class
U
>
constexpr bool operator ( ) ( T && t, U && u ) const ; |
||
给定表达式 std:: forward < T > ( t ) < std:: forward < U > ( u ) 为 expr :
-
-
若转换后的
t
(类型为
P)在 实现定义的指针严格全序 中先于转换后的 u (类型为P),则返回 true ,否则返回 false 。 -
若从
T到P的转换序列或从U到P的转换序列不满足 等值保持性 ,则行为未定义。
-
若转换后的
t
(类型为
- 否则:
-
- 返回 expr 的结果。
- 若未满足 std:: totally_ordered_with < T, U > 概念,则行为未定义。
此重载仅当满足 std:: totally_ordered_with < T, U > 时参与重载决议。
若存在类型为
T
的表达式
expr1
和类型为
U
的表达式
expr2
,使得
expr1
与
expr2
的比较结果违反
严格全序
(规则如下所述),则行为未定义。
仅当 恰好满足 以下表达式之一为 true 时, expr1 与 expr2 的比较结果遵循严格全序:
- std :: ranges:: less { } ( expr1, expr2 )
- std :: ranges:: less { } ( expr2, expr1 )
- std :: ranges:: equal_to { } ( expr1, expr2 )
注释
与
std::less
不同,
std::ranges::less
要求所有六个比较运算符
<
,
<=
,
>
,
>=
,
==
和
!=
必须有效(通过
totally_ordered_with
约束实现)。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3530 | C++20 | 比较指针时语法检查被放宽 | 仅放宽语义要求 |
参见
|
实现
x
<
y
的函数对象
(类模板) |