Namespaces
Variants

std::partial_order

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap 及び 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通のボキャブラリ型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
ヘッダ <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 を参照のこと。

例

関連項目

すべての6つの演算子をサポートし、置換可能ではなく、比較不能な値を許容する3方向比較の結果型
(クラス)
3方向比較を実行し、型 std::strong_ordering の結果を生成する
(カスタマイゼーションポイントオブジェクト)
(C++20)
3方向比較を実行し、型 std::weak_ordering の結果を生成する
(カスタマイゼーションポイントオブジェクト)
3方向比較を実行し、型 std::partial_ordering の結果を生成する( operator <=> が利用できない場合でも)
(カスタマイゼーションポイントオブジェクト)