std::compare_strong_order_fallback
ja.cppreference.net より
| ヘッダ <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */
compare_strong_order_fallback = /* unspecified */;
}
|
で定義 (C++20以上) | |
| 呼び出しシグネチャ |
||
template< class T, class U >
requires /* see below */
constexpr std::strong_ordering
compare_strong_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
|
(C++20以上) | |
部分式 と t に対して三方比較を行い、型 ustd::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
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconstな
リテラル
semiregular
クラス型である。詳細は
CustomizationPointObject
を参照。
例
|
このセクションは不完全です
理由: 例がありません |
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++20 |
フォールバック機構は戻り値の型が
bool に変換可能であることのみを要求 |
制約が強化された |
関連項目
|
(C++20)
|
3方向比較を実行し、型
std::strong_ordering
の結果を生成する
(カスタマイゼーションポイントオブジェクト) |