名前空間
変種
操作

std::partial_order

From cppreference.com
< cpp‎ | utility
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
partial_order
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
ヘッダ <compare> で定義
inline namespace /* 未指定 */ {

    inline constexpr /* 未指定 */ partial_order = /* 未指定 */;

}
(C++20以降)
呼び出しシグネチャ
template< class T, class U >

    requires /* 以下を参照 */
constexpr std::partial_ordering

    partial_order( T&& t, U&& u ) noexcept(/* 以下を参照 */);

3方向比較を使用して2つの値を比較し、std::partial_ordering型の結果を生成します。

tuを式、TUをそれぞれdecltype((t))decltype((u))とすると、std::partial_order(t, u)式と同等です。

カスタマイゼーションポイントオブジェクト

std::partial_orderという名前は、リテラルsemiregularクラス型のconstな関数オブジェクトであるカスタマイズポイントオブジェクトを表します。説明の便宜上、その型のcv非限定バージョンは__partial_order_fnと表記されます。

__partial_order_fnのすべてのインスタンスは等しいです。異なる型の__partial_order_fnのインスタンスを同じ引数で呼び出した場合の効果は、インスタンスを表す式がlvalueであるかrvalueであるか、const修飾されているかどうかにかかわらず、同等です(ただし、volatile修飾されたインスタンスは呼び出し可能である必要はありません)。したがって、std::partial_orderは自由にコピーでき、そのコピーは互換的に使用できます。

Args...の型のセットが与えられた場合、もしstd::declval<Args>()...が上記のstd::partial_orderの引数の要件を満たしていれば、__partial_order_fnは以下をモデル化します。

そうでなければ、__partial_order_fnの関数呼び出し演算子はオーバーロード解決に参加しません。

[編集]

[編集] 関連項目

6つすべての演算子をサポートし、置換可能ではなく、比較不可能な値を許容する三方比較の結果型
(クラス) [編集]
三方比較を行い、std::strong_ordering 型の結果を生成する
(カスタマイゼーションポイントオブジェクト)[編集]
三方比較を行い、std::weak_ordering 型の結果を生成する
(カスタマイゼーションポイントオブジェクト)[編集]
operator<=> が利用できなくても、三方比較を行い std::partial_ordering 型の結果を生成する
(カスタマイゼーションポイントオブジェクト)[編集]
English 日本語 中文(简体) 中文(繁體)