std::partial_order
ja.cppreference.net より
| ヘッダ <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ partial_order = /* unspecified */;
}
|
で定義 (C++20 以上) | |
| 呼び出しシグネチャ |
||
template< class T, class U >
requires /* see below */
constexpr std::partial_ordering
partial_order( T&& t, U&& u ) noexcept(/* see below */);
|
||
三方比較を使用して2つの値を比較し、std::partial_ordering 型の結果を生成します。
t と u を式、T と U をそれぞれ decltype((t)) と decltype((u)) が表す型とすると、std::partial_order(t, u) は以下と式等価です:
std::is_same_v<std::decay_t<T>, std::decay_t<U>>がtrueの場合:std::partial_ordering(partial_order(t, u)):std::partial_orderの宣言を含まないコンテキストでオーバーロード解決が行われ、それが適格な式である場合。- そうでない場合、
std::partial_ordering(std::compare_three_way()(t, u)): それが適格な式である場合。 - そうでない場合、
std::partial_ordering(std::weak_order(t, u)): それが適格な式である場合。
- それ以外のすべての場合、式は不適格であり、テンプレートのインスタンス化の即時コンテキストに現れた場合に置換失敗を引き起こす可能性があります。
カスタマイゼーションポイントオブジェクト
名前
std::partial_order
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconstな
リテラル
semiregular
クラス型である。詳細は
CustomizationPointObject
を参照のこと。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
すべての6つの演算子をサポートし、置換可能ではなく、比較不能な値を許容する3方向比較の結果型
(クラス) |
|
(C++20)
|
3方向比較を実行し、型
std::strong_ordering
の結果を生成する
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
3方向比較を実行し、型
std::weak_ordering
の結果を生成する
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
3方向比較を実行し、型
std::partial_ordering
の結果を生成する(
operator
<=>
が利用できない場合でも)
(カスタマイゼーションポイントオブジェクト) |