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