std:: compare_partial_order_fallback
|
ヘッダーで定義
<compare>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
|
(C++20以降) | |
|
呼び出しシグネチャ
|
||
|
template
<
class
T,
class
U
>
requires
/* see below */
|
(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
?
std
::
partial_ordering
::
equivalent
:
t < u ? std :: partial_ordering :: less :
u < t ? std :: partial_ordering :: greater :
std :: partial_ordering :: unordered 、ただし式 t == u 、 t < u および u < t がすべて整形式であり、かつ decltype ( t == u ) 、 decltype ( t < u ) および decltype ( u < t ) のそれぞれが boolean-testable コンセプトを満たす場合。ただし t および u は一度のみ評価される。
その他のすべての場合において、 std :: compare_partial_order_fallback ( t, u ) は不適格となり、これはテンプレートのインスタンス化の直接の文脈で現れる場合に substitution failure を引き起こす可能性があります。
目次 |
カスタマイゼーションポイントオブジェクト
名前
std::compare_partial_order_fallback
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconstな
リテラル
semiregular
クラス型である。詳細は
CustomizationPointObject
を参照。
例
|
このセクションは不完全です
理由: 例がありません |
欠陥報告
以下の動作変更に関する欠陥報告書は、以前に公開されたC++標準に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++20 |
フォールバック機構は戻り値の型が
bool に変換可能であることのみを要求 |
制約が強化された |
| LWG 3465 | C++20 | フォールバック機構は u < t が well-formed であることを要求していなかった | 要求されるようになった |
| LWG 4157 | C++20 | P2167R3 が LWG issue 3465 の解決を上書きした | 解決が復元された |
関連項目
|
(C++20)
|
3方向比較を実行し、型
std::partial_ordering
の結果を生成する
(カスタマイゼーションポイントオブジェクト) |