Namespaces
Variants

synth-three-way, synth-three-way-result

ja.cppreference.net より
constexpr auto synth-three-way = /* see below */;
(1) (C++20以上)
(説明専用*)
template< class T, class U = T >
using synth-three-way-result =
    decltype(synth-three-way(std::declval<T&>(), std::declval<U&>()));
(2) (C++20以上)
(説明専用*)
1) operator()が合成された三方比較関数として振る舞う関数オブジェクト。以下と同等:
constexpr auto synth-three-way =
    []<class T, class U>(const T& t, const U& u)
        requires requires
        {
            { t < u } -> boolean-testable;
            { u < t } -> boolean-testable;
        }
    {
        if constexpr (std::three_way_comparable_with<T, U>)
            return t <=> u;
        else
        {
            if (t < u)
                return std::weak_ordering::less;
            if (u < t)
                return std::weak_ordering::greater;
            return std::weak_ordering::equivalent;
        }
    };
2) operator()の(1) (synth-three-way)の戻り値の型。

パラメータ

t, u - 比較対象の値

戻り値

比較結果。

関連項目

(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
pair内の値を辞書式に比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
タプル内の値を辞書式に比較
(関数テンプレート)
(C++11) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++20)
2つの array の値を辞書順で比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの deque の値を辞書順で比較する
(関数テンプレート)
(C++11) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++11) (C++20で削除) (C++20)
2つの forward_list の値を辞書順で比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの list の値を辞書順に比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの vector の値を辞書順に比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの map の値を辞書順で比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの multimap の値を辞書順で比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの set の値を辞書順で比較する
(関数テンプレート)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
2つの multiset の値を辞書順で比較する
(関数テンプレート)