std:: compare_partial_order_fallback
|
定义于头文件
<compare>
|
||
|
inline
namespace
/* 未指定 */
{
inline
constexpr
/* 未指定 */
|
(C++20 起) | |
|
调用签名
|
||
|
template
<
class
T,
class
U
>
requires
/* 见下文 */
|
(C++20 起) | |
对
子表达式
t
和
u
进行三路比较,并生成
std::partial_ordering
类型的结果,即使运算符
<=>
不可用。
如果 std:: decay_t < T > 和 std:: decay_t < U >> 是相同类型, std :: compare_partial_order_fallback ( t, u ) 在 表达式等价性 上等同于:
- 若表达式合法,则执行 std:: partial_order ( t, u ) ;
-
否则,当表达式
t
==
u
、
t
<
u
和
u
<
t
均合法,且
decltype
(
t
==
u
)
、
decltype
(
t
<
u
)
与
decltype
(
u
<
t
)
均满足
boolean-testable
概念时(其中
t
和
u
仅被求值一次),执行:
t == u ? std :: partial_ordering :: equivalent :
t < u ? std :: partial_ordering :: less :
u < t ? std :: partial_ordering :: greater :
std :: partial_ordering :: unordered 。
在所有其他情况下, std :: compare_partial_order_fallback ( t, u ) 的格式不正确,当它出现在模板实例化的直接上下文中时,可能导致 替换失败 。
目录 |
定制点对象
名称
std::compare_partial_order_fallback
表示一个
定制点对象
,这是一个字面量
semiregular
类类型的常量
函数对象
。有关详细信息,请参阅
定制点对象
。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 适用版本 | 发布时行为 | 正确行为 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++20 |
回退机制仅要求
返回类型可转换为 bool |
约束条件已加强 |
| LWG 3465 | C++20 | 回退机制未要求 u < t 格式正确 | 现要求格式正确 |
| LWG 4157 | C++20 | P2167R3 覆盖了 LWG 3465 的解决方案 | 已恢复原解决方案 |
参见
|
(C++20)
|
执行三路比较并生成
std::partial_ordering
类型的结果
(定制点对象) |