Spec-Zone.ru › C++

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

constexpr auto synth-three-way = /* see below */;
(1) (since C++20)
(только для примера*)
template< class T, class U = T >
using synth-three-way-result =
    decltype(synth-three-way(std::declval<T&>(), std::declval<U&>()));
(2) (since 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 - значения для сравнения

Значение возврата

Результат сравнения.

См. также

operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения в паре
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения в кортеже
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(C++11)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух arrays
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух deques
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(C++11)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++11)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух forward_lists
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух lists
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух vectors
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух maps
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух multimaps
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух sets
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения двух multisets
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/standard_library/synth-three-way

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API