std::compare_partial_order_fallback
ja.cppreference.net より
| ヘッダ <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */
compare_partial_order_fallback = /* unspecified */;
}
|
で定義 (C++20以上) | |
| 呼び出しシグネチャ |
||
template< class T, class U >
requires /* see below */
constexpr std::partial_ordering
compare_partial_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
|
(C++20以上) | |
部分式 と t に対して三方比較を行い、u 演算子が利用できない場合でも、型 の結果を生成します。<=>
もし 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) は不適格であり、テンプレートのインスタンス化の直接の文脈に現れた場合、置換失敗 を引き起こす可能性があります。
カスタマイゼーションポイントオブジェクト
名前
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
の結果を生成する
(カスタマイゼーションポイントオブジェクト) |