名前空間
変種
操作

std::compare_partial_order_fallback

提供: cppreference.com
< cpp‎ | utility
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
ヘッダ <compare> で定義
inlinenamespace/* unspecified */{

    inlineconstexpr/* unspecified */
        compare_partial_order_fallback =/* unspecified */;

}
(C++20以上)
Call signature
template<class T, class U >

    requires /* see below */
constexpr std::partial_ordering

    compare_partial_order_fallback(T&& t, U&& u)noexcept(/* see below */);

tu に対して三方比較を行い、 std::partial_ordering 型の結果を生成します (演算子 <=> が利用できない場合でも)。

t および u を式、 T および U をそれぞれ decltype((t)) および decltype((u)) とすると、 std::compare_partial_order_fallback(t, u) は以下と expression-equivalent です。

  • std::is_same_v<std::decay_t<T>, std::decay_t<U>>==true の場合、
    • std::partial_order(t, u) が well-formed であれば、その式。
    • そうでなく、 t == ut < u がどちらも well-formed かつ bool に変換可能であれば、以下の式。
t == u ? std::partial_ordering::equivalent: t < u ? std::partial_ordering::less: u < t ? std::partial_ordering::greater: std::partial_ordering::unordered
ただし t および u は一度だけ評価されます。
  • それ以外のすべての場合において、 std::compare_partial_order_fallback(t, u) は ill-formed です。

目次

[編集]expression-equivalent

e と式 f が同じ効果を持ち、どちらも潜在的に例外を投げるかどちらも潜在的に例外を投げない (すなわち noexcept(e)==noexcept(f)) であり、どちらも定数部分式であるかどちらも定数部分式でない場合、 ef と expression-equivalent です。

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

名前 std::compare_partial_order_fallbackカスタマイゼーションポイントオブジェクトを表します。 これは semiregularリテラルクラス型 (以下 compare_partial_order_fallback_ftor(説明専用)) の const な関数オブジェクトです。 compare_partial_order_fallback_ftor のすべてのインスタンスは等しいです。 すなわち、 std::compare_partial_order_fallback は自由にコピーでき、そのコピーはお互いに交換可能です。

型の集合 Args... が与えられたとき、 std::declval<Args>()... が上記の std::compare_partial_order_fallback の引数に対する要件を満たすならば、 compare_partial_order_fallback_ftorstd::invocable<const compare_partial_order_fallback_ftor&, Args...> を満たします。 そうでなければ、 compare_partial_order_fallback_ftor の関数呼び出し演算子はオーバーロード解決に参加しません。

[編集]

[編集]関連項目

三方比較を行い、 std::partial_ordering 型の結果を生成します
(カスタマイゼーションポイントオブジェクト)[edit]
close